Domain Driven Design is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts.
Under domain-driven design, the structure and language of software code (class names, class methods, class variables) should match the business domain.
Domain-driven design is predicated on the following goals:
- placing the project's primary focus on the core domain and domain logic;
- basing complex designs on a model of the domain;
- initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
When trying to control the domain model, this problems may be at hand:
- The team has tried to combine all domain concepts and knowledge in on domain model.
- Two vaguely related concepts may be represented as one domain model.
- Regarding data, having one large database imply that developers can take that information from different points without taking into account business data rules.
With bounded contexts we make sure that domain models can't directly make use of domain models from other contexts by making them physically bounded.
There are several key concepts and practices in DDD:
The rest of the content (32 read minutes) is restricted.
Please use your personal access token or register to access.