领域驱动实战思考(一):用TDD思想对DDD的协作设计过程进行基

2019-12-21  本文已影响0人  胡皓

版权声明:本作品采用【知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议】进行许可。


前言

在这一年聚焦DDD设计,尤其是DDD的协作设计工作坊的咨询工作中,我发现客户同很多咨询顾问之间总是存在以下冲突:

结合我曾经在ThoughtWorks近4年的人员培养和教学经验,和这几年来的咨询经验,我能够理解客户这样要求,是因为希望能够实现方法论的规模化落地。而在方法论规模化落地的过程中,一个很重要的问题,就是绝大多数能力一般的人,都更习惯于依据“明确的指令”进行工作,而不是依赖自己“有限的经验”和“莫能两可的方法论”

这篇文章就是记录我是如何来解决这个问题的。

我的基准化思维框架

对DDD这样的方法论进行“按部就班”式的基准化梳理,从而形成“基准化的操作”,以提供“明确的指令”,说起来简单,做起来却没有想象中容易。绝大多数的顾问虽然能够对方法论进行阶段性拆分,但是却没有能够将方法论进行细粒度的拆分和验证。

从我的观察来看,之所以造成这个问题,主要原因来自几个方面:

还有一个很重要的原因,就是绝大多数技术顾问可能脱离写代码这件事情太久了,没有意识到对方法论基准化非常像我们开发软件的过程

更重要的是,以上这个过程,是可以用“测试驱动开发(Test Driven Development)”的思想来做的!

利用TDD的方式进行DDD设计过程的基准化

那么,我是怎样用TDD的思想,对DDD的设计过程进行基准化的呢?在这一年,通过大大小小十数个咨询项目,我是这样做的:

这样,就通过实战验证的方式,从确定交付物开始,一步一步的增量式的完成了DDD设计过程的基准化,这也很像我们做软件设计时通过TDD而达到的“简单设计(增量式设计)”思想。

结果

DDD的思想和设计过程,是公开并且没有什么保留意义的,所以,我在这里也选择分享给大家,以便为DDD在中国的落地和完善贡献一份力量。

同时,我也正在建立一系列的DDD基准化公开材料、社区和培训,我未来会将这些内容逐步发布到Github的“领域驱动”组织之中,地址如下:

而文章中所说的基准化的领域驱动设计产出物如下,未来我会继续进行不断的打磨和优化:

对于这些基准化的产出,我已经通过带领7个新咨询师进行了可复用性的验证,这些新咨询师只需要通过我讲解或示范一遍,就能够独立承担后续的DDD设计咨询工作,并且还能够实现概念和手法的一致性。

至于“By Experience”,则只剩操作者个人经验的高低,和智商的天花板了。

上一篇下一篇

猜你喜欢

热点阅读