![]() |
![]() |
Domain-driven design is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts.
Domain-driven design is not a technology or a methodology. It is a way of thinking and a set of priorities aimed at accelerating software projects that have to deal with complicated domains.
The premise of domain-driven design is two-fold: Place the project's primary focus on the domain and domain logic; and Base complex designs on a model.
To follow this premise calls for a raft of development practices and design principles and certain habits. Domain Language was formed to help companies accomplish their goals through these principles.
One team, one language, running from requirements discussions through the code itself: This is what it takes to unleash the full potential of your team. To share and cultivate a useful set of domain concepts calls for a lively experimentation with models and language that leads to new insights. On a more basic level, a team needs a language to discuss their process and design techniques.
Our coaching and other services, while always yeilding some tangible result, also aim to help this dynamic to emerge on the team.
![]() |
![]() |
To bring together people interested in solving complex software problems through the intelligent use of domain models and design, we host a noncommercial companion site, domaindrivendesign.org, as a source of information, online discussion, and other resources.
![]() |
![]() |
Domain-Driven Design, by Eric Evans, provides a broad framework for making design decisions and a technical vocabulary for discussing domain design. It is a synthesis of widely accepted best practices along with the author’s own insights and experiences. Projects facing complex domains can use this framework to approach domain-driven design systematically.