All About DDD
Explore the effective understanding of business domains, collaboration, and domain decomposition for application development.
DDD is about modeling a complex business idea into software by developing a deep understanding of the problem domain. This understanding is then used to break up the problem into smaller, more manageable pieces. The two key patterns of DDD at play here are:
Ubiquitous language
Bounded contexts
Alignment and agreement on the goals
To find success with DDD, collaboration must exist between domain experts and developers. There should be meetings where business ideas and concepts are sketched and diagrammed to be gone over from top to bottom and thoroughly discussed. The results of these discussions are then modeled and discussed further to weed out any incorrect understanding of implicit details.
This is not a process we do once before writing any code. Complex systems are living entities in a way, and they change and evolve. When new features are being considered, the same people should meet to discuss how these will be added to the domain model.
Speaking the same language
When domain experts come together with developers, discussions could fall apart if the parties involved cannot come to an understanding of a concept by having different ideas about what is being said or read. The ubiquitous language (UL) principle requires every domain-specific term to have a single meaning within a bounded context. By using a shared language, a better understanding of the domain can flourish. The domain experts have their jargon, and the developers have theirs. It is preferable to use the terms spoken by the domain experts, and it is these terms that will be used to name and describe the domain models.
Get hands-on with 1400+ tech skills courses.