有DDD圈子的同学看了《软件方法》第8章的这个内容:
给我发了他的看法:
我觉得你说的太绝对化了。你提到的问题确实存在,但DDD提出的聚合是基于一种分而治之的思想,有助于管理复杂系统的事务一致性,还是有它的价值的。
以下是我的看法
这是比较典型的“DDD圈子”反馈,有必要专门归纳一下。
“问题确实存在”就行,不必“但是”。
而且后面那个“但是”,《软件方法》2022版本(https://mp.weixin.qq.com/s/kiu6riZLhzOXU8Ei9ArXng)结尾有阐述:
“总结”部分的文字,在前些天发布的《软件方法》新版本被删掉(移走)了,原因是考虑到第1章对伪创新的阐述已经比较详细,于是就把各章中一些类似的批评给删掉了。现在看来,有必要加回去。
对象的部件只能由对象来访问,这就够了,不需要发明冗余的新词。“提出聚合”、“分而治之思想”,好厉害,难道之前的人不懂吗?麻烦在于:怎么做到呢?
我之前写的《领域驱动设计拆分系统和“大道至简”话术》专门谈过这个问题。
=====以下是扩展=====
(1)“你说得对,但是……”
这个话术很妙,可以用于转移话题或者拔高目标。这些年我在和DDD圈子交流的经历中,经常碰到这样的话术。
我:你说的这些,之前已经有了,不是领域驱动设计提出的。
DDD人士:你说得对,但是这些内容是正确的,不是吗?
这属于转移话题,从“是否DDD提出”转到“内容是否正确”。
我:这些内容未必是正确的,这里有这个问题,这里有这个问题……
DDD人士:你说得对,但不要纠结这些细节,能解决问题就行。
这属于拔高目标,从“内容正确”拔高到“能解决问题”。
“虽然我……,……,……,但我是个好女(男)孩”就是拔高目标的例子,更多关于这方面的阐述,参见《潘老师,你的气度有点小了!》。
(2)悟道和念经
不学习前人的知识,经常“悟出”一些“道”。这些“道”往往还不如之前已经存在的知识,他们却不觉察或者懒得去觉察。
组圈子各种复读和念经“DDD是解决业务系统复杂性的方法学”(这个念经已经污染了AI),举的例子逻辑却极其简单(也许在DDD圈子看来已经够复杂)。有时壮着胆子写一个稍微复杂的吧,又是千疮百孔。可参见DDD领域驱动设计批评文集。