加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是什么让我的代码DDD(域驱动设计)合格?

发布时间:2020-12-13 20:09:31 所属栏目:百科 来源:网络整理
导读:我是DDD的新手,我正在考虑在我的项目中使用这种设计技术. 然而,DDD让我印象深刻的是这个想法有多基本.与其他设计技术(如MVC和TDD)不同,它似乎不包含任何突破性的想法. 例如,我相信你们中的一些人会有同样的感觉,根聚合和存储库的想法并不新鲜,因为当你在编写
我是DDD的新手,我正在考虑在我的项目中使用这种设计技术.

然而,DDD让我印象深刻的是这个想法有多基本.与其他设计技术(如MVC和TDD)不同,它似乎不包含任何突破性的想法.

例如,我相信你们中的一些人会有同样的感觉,根聚合和存储库的想法并不新鲜,因为当你在编写MVC Web应用程序时,你必须有一个单独的主对象(即根聚合)包含模型层中的其他次要对象(即值对象和实体),以便将数据发送到强类型视图.

对我来说,DDD中唯一的新想法可能是

>“智能”实体(即您应该在根聚合上有业务规则)
>值对象,根聚合和实体之间的分离.

谁能告诉我,如果我错过了这里的任何东西?
如果这就是DDD,如果我用上述2个新想法更新我现有的MVC应用程序之一,我可以声称它是TDD,MVC和DDD应用吗?

简短的回答是,不是你的代码看起来像是一个DDD项目,它是你如何达到该代码.现在为长版…

对于DDD编码实践没有任何革命性的东西你是完全正确的,但你似乎对你的问题有点偏离目标.许多开发人员使用DDD的一个常见错误是过多地关注编码实践,而忽略了一些更基本的DDD概念. DDD的核心是通过开发人员和领域专家之间的密切合作来迭代开发模型.您可以编写所需的所有服务,实体和值对象,但如果您没有在过程中涉及域专家,或者没有通过迭代改进模型,那么坦率地说,您不是在练习DDD.即使从编码的角度来看,许多人认为聚合根,有界上下文和反腐败层的概念比基本模式更有价值.

你并不是唯一一个了解DDD的人.我发现几乎所有的开发人员都经历了一个DDD阶段,他们试图使用实体,价值对象和服务来实现样本应用程序,而忽略了DDD基本的所有其他实践. DDD是一个旨在处理复杂业务逻辑的流程,因此判断一个周末开发的示例应用程序的优点并不能让您获得DDD所能提供的最佳功能.我敦促你继续深入研究DDD,因为我发现它是一个不可或缺的工具,但永远不要忘记它不仅仅是一种模式语言.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读