领域驱动开发的作者明确指出,DDD 只适合业务复杂度很大的场景,不适用于技术复杂性很大但业务领域复杂性很低的场景。可以看出,DDD 只专注一个领域,高复杂业务 —— 通过它可以为你的系统建立一个核心、稳定的领域模型,灵活、可扩展的架构。 DDD 是拥抱复杂的,拥抱变化的,但本身也是有成本有前提的;简单系统,没必要搞这么复杂,强上 DDD 就是一种反模式了。所以,当你遇到一个问题就想到 DDD 的时候,一定要注意 “DDD 只是一把锤子”,不要拿着这把锤子到处去敲! 如何判断业务是否复杂,判断依据不胜繁数。在我看来,没那么复杂,就两个: 宽度:链路广度大,关注多个纬度的消息来源,覆盖了较多的业务场景 深度:链路深度深,关注对象整个的生命周期,从数据创建、到变更、再到后期运维,流程运转长 只要满足其中一个,就可以认为是复杂的。
领域驱动开发的作者明确指出,DDD 只适合业务复杂度很大的场景,不适用于技术复杂性很大但业务领域复杂性很低的场景。可以看出,DDD 只专注一个领域,高复杂业务 —— 通过它可以为你的系统建立一个核心、稳定的领域模型,灵活、可扩展的架构。
DDD 是拥抱复杂的,拥抱变化的,但本身也是有成本有前提的;简单系统,没必要搞这么复杂,强上 DDD 就是一种反模式了。所以,当你遇到一个问题就想到 DDD 的时候,一定要注意 “DDD 只是一把锤子”,不要拿着这把锤子到处去敲!
如何判断业务是否复杂,判断依据不胜繁数。在我看来,没那么复杂,就两个:
只要满足其中一个,就可以认为是复杂的。