Domain-Driven Design according to Evans
Details
- Full Name
-
Domain-Driven Design according to Eric Evans
Core Concepts:
- Ubiquitous Language
-
Shared vocabulary between developers and domain experts
- Bounded Context
-
Explicit boundaries where a model is defined and applicable
- Aggregates
-
Cluster of domain objects treated as a single unit
- Entities
-
Objects defined by identity, not attributes
- Value Objects
-
Immutable objects defined by their attributes
- Repositories
-
Abstraction for object persistence and retrieval
- Domain Events
-
Significant occurrences in the domain
- Strategic Design
-
Context mapping, anti-corruption layers
- Tactical Design
-
Building blocks (entities, value objects, services)
- Model-Driven Design
-
Code that expresses the domain model
- Key Proponent
-
Eric Evans ("Domain-Driven Design: Tackling Complexity in the Heart of Software", 2003)
When to Use:
-
Complex business domains with intricate rules
-
Long-lived systems requiring deep domain understanding
-
When business and technical teams need close collaboration
-
Systems where the domain logic is the core value