Domain-driven design (DDD)
Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts. The premise of domain-driven design is the following:
Books
Articles
Our training offer
- Placing the project's primary focus on the core domain and domain logic
- Basing complex designs on a model
- Initiating a creative collaboration between technical and domain experts to iteratively cut ever closer to the conceptual heart of the problem.
- Ubiquitous Language
- Model-Driven Design
- Layered Architecture
- Entities
- Value Objects
- Services
- Modules
- Aggregates
- Factories
- Repositories
- Refactoring toward deeper insight
- Strategic Design
- Bounded Countext
- Continuous Integration
- Context Map
- Shared Kernel
- Customer-Supplier
- Conformist
- Anticorruption Layer
- Separate Ways
- Open Host Service
- Distillation
Books
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Domain-Driven Design Quickly : a 100-page summary of Domain-Driven Design
- Domain-Specific Languages by Martin Fowler
Articles
- DDD in practice
- Eric Evans on Why DDD matters today
- Specification Pattern (Martin Fowler & Eric Evans)
- Fluent Interfaces and Domain-Specific Languages
- Alistair Cockburn's Hexagonal Architecture
- Eric Evans on DDD : Putting the model to work
- Eric Evans on DDD : Strategic Design
- What I've learned about DDD since the book, Eric Evans
- Greg Young Discusses State Transitions in Domain-Driven Design and DDD Best Practices
- Mark Nijhof on his example
- Qi4J
- JdonFramework
- DDD sample application (Java)
- Wikipedia's list of software tools that support DDD
Our training offer

