Book Profile
Domain-Driven Design: Tackling Complexity in the Heart of Software
Eric Evans · 2003
Domain-Driven Design argues that the key to building complex, long-lived software is tightly coupling a rich, collaboratively developed domain model to every aspect of the implementation, from code to team communication.
Get the book →Domain-Driven Design by Eric Evans is the definitive guide to tackling software complexity by placing the business domain at the center of development. Evans demonstrates, through extensive examples drawn from shipping systems, banking, PCB design, and loan syndication, that sustainable software emerges only when developers and domain experts collaborate to build a shared model expressed in a common language—one that pervades diagrams, conversations, and the code itself. The book provides a comprehensive vocabulary of patterns—Entities, Value Objects, Aggregates, Repositories, Factories, Services, Bounded Contexts, and more—that give teams precise tools for designing systems whose structure mirrors domain reality. It addresses not only fine-grained object design but also the strategic challenges of large systems: how to maintain model integrity across teams, how to distill a Core Domain from supporting concerns, and how to impose large-scale structure without stifling local design freedom. Whether a team is navigating a breakthrough insight, integrating legacy systems, or coordinating multiple bounded contexts, this book provides the conceptual framework and practical patterns to do so with clarity and discipline.
What it argues
A causal model describing how design and team practices (domain collaboration, ubiquitous language, model-driven design, bounded contexts, distillation, supple design, large-scale structure) shape psychological and behavioral states (shared understanding, cognitive load, model integrity) and ultimately determine software outcomes (maintainability, evolvability, domain value, team effectiveness).