# Domain Driven Design Quickly
# TOC
- [X] Preface: Why DDD Quickly?
- [X] Introduction
- [ ] What is Domain-Driven Design
- [ ] Building Domain Knowledge
- [ ] The Ubiquitous Language
- [ ] The Need for a Common Language
- [ ] Creating the Ubiquitous Language
- [ ] Model-Driven Design
- [ ] The Building Blocks of a Model-Driven Design
- [ ] Layered Architecture
- [ ] Entities
- [ ] Value Objects
- [ ] Services
- [ ] Modules
- [ ] Aggregates
- [ ] Factories
- [ ] Repositories
- [ ] Refactoring Toward Deeper Insight
- [ ] Continuous Refactoring
- [ ] Bring Key Concepts Into Light
- [ ] Preserving Model Integrity
- [ ] Bounded Context
- [ ] Continuous Integration
- [ ] Context Map
- [ ] Shared Kernel
- [ ] Customer-Supplier
- [ ] Conformist
- [ ] Anticorruption Layer
- [ ] Seperate Ways
- [ ] Open Host Service
- [ ] Distillation
- [ ] DDD Matters Today: An interview with Eric Evans
# Preface: Why DDD Quickly?
**What is DDD?**
- It emphasis business domain instead of technology-specific hype.
- Its a way how OOP can be apply on enterprise scale.
**Why this book?**
- No new concept outside of DDD
- A consise summarization of DDD
**Interest readers' references for case studies**:
- Eric Evans’ DDD
- Jimmy Nilsson’s Applying DDD
- Architecture Patterns with Python (Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices).
- Learning domain-driven design (O'RELLY)
# Introduction
## Background:
- Software often work on specific domain, or certain aspect of life.
- Software should be pratical and useful.
- Design of Software is kind of like an art, no absolute path to a good design.
## What is in this book?
- Principles and Guidelines of DDD.
# 1. What is Domain-Driven Design?
REF: https://simonatta.medium.com/domain-driven-design-16763795fadd