个人理解:
这是一种思想,而不是框架或者技术.是指导方法,
最简单的说就是:拆分,再拆分,降低耦合度,模块内实现高内聚.
目的是: 高内聚模块之间低耦合
但是,很容易搞成四不像,模块高耦合.没有边界,没有规定那些内容在具体的模块中!!
若没有一个全面的了解整个系统,不建议DDD,需要设置边界,整个小组统一思想目标,每一个方法规范到具体的位置.
DDD 更像是一项软技能,一种方法论,包含了很多设计理念,就像PMP,只是理论指导思想,但是实际工作,希望能这么做,但不一定必须这么做.需要有系统大局观,有完整的框架结构,还要考虑到后期的扩充内容!!!
我觉得 DDD 最复杂的地方,其实是在它的领域设计部分,项目启动前,你一定要设计各个领域对象,以及它们直接的交互关系。