1

问题描述

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

阿哲 145
2019-05-20 提问
1 个回答
1

已采纳

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

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

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

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

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

撰写答案

推广链接