Reduce complexity by basing designs on domain models: When you understand the business domain, create a model that is a reflection of the real-world domain.
#Domain driven design bounded context software
They can help you to define all of the processes, procedures, and terminology of that domain. For example, if you are designing software to manage retail inventory, talk to the people who manage the store inventory rather than employees in HR or finance. Focus on the core domain: Before you begin coding, talk to people who work in that domain.The DDD approach is based on the following guiding principles: Guiding principles of domain-driven designīasically, DDD is about developing software that models real-world systems and processes. Any features beyond what they need add little to no value. But you do need to understand how layout editors do their jobs if you want to make software that reflects their real-world processes and procedures.
#Domain driven design bounded context professional
So, in our newspaper layout example above, you don’t need to be a professional layout editor to design helpful layout software. All other features, vital though they may be, support this basic purpose.” In his book, Evans says, “The heart of software is its ability to solve domain-related problems for its user.
To introduce the DDD approach, he wrote a book called Domain-Driven Design: Tackling Complexity in the Heart of Software. For example, the domain of Digital Audio Workstation (DAW) software is the audio recording industry.Ī software developer named Eric Evans recognized the need to understand the software domain. The things that software addresses are the domains that the software is intended to work in. It can streamline and automate real-world processes, or address areas of interest to specific users. Software is meant to make our lives easier. When you understand the domain, you reduce the risk of adding features that your customers don’t need or want.