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