DDD — Notes from the big blue book. Part 8
Chapter 15 — Distillation
- Identify the core domain and make it small
- Identity of the core domain should evolve through iterations
- Create a short domain vision statement and revise it as you gain new insights
- A domain vision statement gives the team shared direction
- Different forms of highlighted core are useful for easily representing the important parts of the core domain eg. distillation document, flagged core
- Make it effortless for a developer to know what is in or out of the core
- Domain vision statements work in synergy e.g. with a segregated core
Chapter 16 — Large Scale Structures
- Large systems that have well grouped modules and bounded contexts can still become unintelligible when there are many of them
- Be prepared to drop a system metaphor if it gives poor guidance
- Combine layered architecture with responsibility-driven design to achieve responsibility layers
- Knowledge models may be appropriate when the roles and responsibilities in a domain can change at runtime
- Pluggable component frameworks don’t easily allow constant refactoring of the core domain
- Large scale structures must enter the ubiquitous language
Chapter 17 — Bringing the Strategy Together
- The three basic principles of strategic design are complementary
- Context
- Distillation
- Large-scale structure
- When tackling strategic design:
- Draw a context map
- Verify ubiquitous language is correctly in use
- Verify there is a core domain and vision statement
- Does the technology choice work for model driven design?
- Does dev team have the skills?
- Does dev team have knowledge and interest in the domain
- Design decisions must reach the entire team