我是DDD的新手,我正在考虑在我的项目中使用这种设计技术.
然而,DDD让我印象深刻的是这个想法有多基本.与其他设计技术(如MVC和TDD)不同,它似乎不包含任何突破性的想法.
例如,我相信你们中的一些人会有同样的感觉,根聚合和存储库的想法并不新鲜,因为当你在编写MVC Web应用程序时,你必须有一个单独的主对象(即根聚合)包含模型层中的其他次要对象(即值对象和实体),以便将数据发送到强类型视图.
对我来说,DDD中唯一的新想法可能是
>“智能”实体(即您应该在根聚合上有业务规则)
>值对象,根聚合和实体之间的分离.
谁能告诉我,如果我错过了这里的任何东西?
如果这就是DDD,如果我用上述2个新想法更新我现有的MVC应用程序之一,我可以声称它是TDD,MVC和DDD应用吗?
简短的回答是,不是你的代码看起来像是一个DDD项目,它是你如何达到该代码.现在为长版…
原文链接:https://www.f2er.com/javaschema/281588.html对于DDD编码实践没有任何革命性的东西你是完全正确的,但你似乎对你的问题有点偏离目标.许多开发人员使用DDD的一个常见错误是过多地关注编码实践,而忽略了一些更基本的DDD概念. DDD的核心是通过开发人员和领域专家之间的密切合作来迭代开发模型.您可以编写所需的所有服务,实体和值对象,但如果您没有在过程中涉及域专家,或者没有通过迭代改进模型,那么坦率地说,您不是在练习DDD.即使从编码的角度来看,许多人认为聚合根,有界上下文和反腐败层的概念比基本模式更有价值.
你并不是唯一一个了解DDD的人.我发现几乎所有的开发人员都经历了一个DDD阶段,他们试图使用实体,价值对象和服务来实现样本应用程序,而忽略了DDD基本的所有其他实践. DDD是一个旨在处理复杂业务逻辑的流程,因此判断一个周末开发的示例应用程序的优点并不能让您获得DDD所能提供的最佳功能.我敦促你继续深入研究DDD,因为我发现它是一个不可或缺的工具,但永远不要忘记它不仅仅是一种模式语言.