learning domain driven design
Strategic Design
- Analyzing Business Domains
- what is business domain?
- sub domains
- types of subdomains
- core subdomains
- generic subdomains
- supporting subdomains
- comparing subdomains
- comparing solution strategy
- comparing volatility
- comparing complexity
- comparing competitive advantage
- subdomains boundaries
- domain experts
- discovering domain knowledge
- business problem discovery
- knowledge discovery
- communication
- ubiquitous language
- using ubiquitous language
- converting business domain to a model
- what is a model
- effective modeling
- modeling the business domain
- managing domain complexity
- inconsistent models
- what is bounded context
- model boundaries
- ubiquitous language refined
- scope of a bounded context
- size of a bounded context
- bounded context vs subdomain
- building boundaries with bounded context
- physical boundaries
- ownership boundaries
- bounded contexts in real life
- integrating bounded contexts
- integration patterns
- cooperation patterns
- bounded context partnership
- bounded context shared kernel
- customer supplier patterns
- conformist
- anti-corruption layer
- open-host layer
- open-host service pattern
- separate ways pattern
- context map
Tactical Design
- implementing simple business logic
- transaction script
- implementation
- 3 ways to corrupt your data if you are using transaction script wrong
- lack of transactional behavior
- distributed transaciton
- implicit distributed transaction
- when to use
- Active records
- implementation
- when to use
- tackling complex business logic
- domain model pattern
- implementation
- 3 building blocks
- value object
- aggregates
- domain service
- managing complexity
- modeling the dimension of time
DDD In Practice