像许多其他"好"编程实践DDD关注实现最大收益,以解决一些困难。根据我的知识和经验。
DDD(正如人们使用大多数原则和模式获得最大利益)可以在以下情况下应用:
- 支持大型复杂域模型是必要的,包含困难的业务规则和许多类。
- 开发人员在OOP和DDD方面都有足够的技能。此外,每个从事项目工作的人都必须了解模型,领域知识和领域语言的重要性。整个团队应该"搬到"更深入地了解领域并正确实施这些知识。
- 开发人员有足够的技术可以专注于模型的实施。
- 项目被认为是长寿的。
- 项目业主(或经理)还应了解合并DDD及其利益的额外费用。
- 项目使用OO作为主要的开发范例。
醇>
DDD无效或无法应用于相反的情况。
另外,DDD可能没用“
- 小型和低质量级项目(如原型)。
- 重要的"部分" DDD描述适用于整个系统的模式和原则" inside"。因此,它与分布式系统堆栈无关(我不是指像上下文映射和上下文绑定这样的模式,它为分布式系统组成另一个"部分")。因此,对于包含"简单单元应用程序的高分布式系统,应用此部分"部分" DDD没有意义(由于应用简单)。
醇>
请注意,某些DDD原则可以应用于任何项目。例如,反腐败级别适合与外部或遗留系统集成。