# DOYR on Domain-Driven Design
## Metadata
**Status**:: #now
**Zettel**:: #zettel/fleeting
**Created**:: [[2026-08-03]]
## Synopsis
### Domain-Driven Design Quickly
> Avram, A., & Marinescu, F. (2006). *Domain-driven design quickly: A summary of eric evans’ domain-driven design*.
#### Ubiquitous Language
- Create a ubiquitous language shared in both domain experts and software developers.
- Share the model using small diagram as a spotlight on a specific area, and add text to describe the model using the ubiquitous language.
#### Building Blocks

- **Layered Architecture**: Separate domain with other parts using layered architecture. Let UI, infrastructure, application depends on domain as in [[Robert C. Martin - Clean Architecture A Craftsman's Guide to Software Structure and Design, First Edition (Highlights)|Clean Architecture]]
- **Services**: Functions that involve multiple objects (aggregates)
- **Aggregates**: Entity root + relations
- **Entities**: Mutable objects with identities
- **Value Objects**: Immutable objects
- **Factories** create aggregates, **Repositories** persist and restore aggregates.