Думаю полезно будет почитать the silent points главы "Common problems for teams starting out with DDD" из книги приниципы и практики DDD:
- The tactical patterns of DDD can guide you toward creating an effective domain model; however, this area of DDD is evolving, and the implementation details have been overemphasized. The patterns may have value, but this is not where the value of DDD lies.
DDD is far more than coding. Collaboration with domain experts to knowledge crunch and have a shared understanding of the problem domain expressed in a ubiquitous language are the pillars of DDD.
- Context is everything; context and isolation retain the integrity of your code. It reduces cognitive load and makes a model specific.
- You need a smart dedicated team willing to learn about the domain.
- You need access to a domain expert. Teams can’t reveal deeper insights without them.
- Use CRUD for bounded contexts with low complexity. You are not a bad programmer if you don’t have a domain model.
- Bounded context and the ubiquitous language are the foundation of DDD.
- DDD is about the process of learning, refining, experimenting, and exploring in the quest to discover a useful model in collaboration.