DDD是否有必要引入到代码工程中?

问题描述

DDD领域开发如此繁杂,是否有必要引入到实际架构中,需要考虑哪几方面的因素?

阅读 2.3k
1 个回答

领域驱动开发的作者明确指出,DDD 只适合业务复杂度很大的场景,不适用于技术复杂性很大但业务领域复杂性很低的场景。可以看出,DDD 只专注一个领域,高复杂业务 —— 通过它可以为你的系统建立一个核心、稳定的领域模型,灵活、可扩展的架构。

DDD 是拥抱复杂的,拥抱变化的,但本身也是有成本有前提的;简单系统,没必要搞这么复杂,强上 DDD 就是一种反模式了。所以,当你遇到一个问题就想到 DDD 的时候,一定要注意 “DDD 只是一把锤子”,不要拿着这把锤子到处去敲!

如何判断业务是否复杂,判断依据不胜繁数。在我看来,没那么复杂,就两个:

  1. 宽度:链路广度大,关注多个纬度的消息来源,覆盖了较多的业务场景
  2. 深度:链路深度深,关注对象整个的生命周期,从数据创建、到变更、再到后期运维,流程运转长

只要满足其中一个,就可以认为是复杂的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题