我们为什么要学习领域驱动设计?

1.DDD 的价值

随着发展业务会变得越来越复杂:认知成本与协作成本会上升
DDD能减少这两方面的成本

  • DDD划分上下文分析领域对象建立业务模型,降低认知成本
  • DDD建立通用的模型语言使得团队各个角色都能高效准确的进行沟通,降低协作成本【最大的鸿沟之一便存在于领域专家和开发者之间】

2.发展趋势

在 2021 年我刚刚开始学习 DDD 时感觉资料很少,搜来搜去都是同一个文章
今年(2022年)我在检索看时明显感觉相关的资料多了,各种专栏各种学习笔记都很多
说明大家都在往这个方向上靠
ps:纯个人感觉,并没有实际的看搜索指数之类的

还有一种说法: 我们之前的互联网都是蓝海市场,只要产品做出来就有买单(C端),现在红利没有了,相关产业都深入了传统实体企业的业务,复杂度特别高, 简单的开发模式已经无法满足业务迭代的续期
这里举一个例子:某公司,团队水平还比较高,一个项目迭代了两年,整个项目都无法维护了,新入职的同事看到需求完全没办法下手,只有老员工才知道怎么写

3. DDD 领域驱动批评

DDD 不是银弹

重要的是写出好的代码,而不是陷于某种软件设计方法

好的设计都是相通的

DDD 领域驱动设计批评-潘加宇

领域驱动设计推荐的学习路线

学习路线

先看一下基础知识大约有哪些,带着问题看资料

推荐的的阅读顺序:

先看专栏DDD实战课和 《领域驱动设计精粹》 ,他们比较精简,快速的有个了解

然后其他的作为补充,觉得缺哪方面,就专门看哪方面的【深入学】

在这个过程里可以配合代码例子看看

1.基础知识

image.png

2.落地实践

2.1 建模设计

参考实战案例,学习

  • 事件风暴
  • 用户故事建模法
  • 四色建模法
  • 限界纸笔建模法

2.2 落地写代码

用实际的例子,进行实践
image.png
COLA COLA 4.0的 架构的源码
cola-cargo 基于cola的货物运输系统源代码
cola-service-demos、cola-web-demos 是使用cola的maven模版生成的代码
think-cola-master 基于cola的简单注册登陆功能

COLA架构编码约定.pdf

资料

资源汇总