我们为什么要学习领域驱动设计?
1.DDD 的价值
随着发展业务会变得越来越复杂:认知成本与协作成本会上升
DDD能减少这两方面的成本
- DDD划分上下文分析领域对象建立业务模型,降低认知成本
- DDD建立通用的模型语言使得团队各个角色都能高效准确的进行沟通,降低协作成本【最大的鸿沟之一便存在于领域专家和开发者之间】
2.发展趋势
在 2021 年我刚刚开始学习 DDD 时感觉资料很少,搜来搜去都是同一个文章
今年(2022年)我在检索看时明显感觉相关的资料多了,各种专栏各种学习笔记都很多
说明大家都在往这个方向上靠
ps:纯个人感觉,并没有实际的看搜索指数之类的
还有一种说法: 我们之前的互联网都是蓝海市场,只要产品做出来就有买单(C端),现在红利没有了,相关产业都深入了传统实体企业的业务,复杂度特别高, 简单的开发模式已经无法满足业务迭代的续期
这里举一个例子:某公司,团队水平还比较高,一个项目迭代了两年,整个项目都无法维护了,新入职的同事看到需求完全没办法下手,只有老员工才知道怎么写
3. DDD 领域驱动批评
DDD 不是银弹
重要的是写出好的代码,而不是陷于某种软件设计方法
好的设计都是相通的
领域驱动设计推荐的学习路线
学习路线
先看一下基础知识大约有哪些,带着问题看资料
推荐的的阅读顺序:
先看专栏DDD实战课和 《领域驱动设计精粹》 ,他们比较精简,快速的有个了解
然后其他的作为补充,觉得缺哪方面,就专门看哪方面的【深入学】
在这个过程里可以配合代码例子看看
1.基础知识
2.落地实践
2.1 建模设计
参考实战案例,学习
- 事件风暴
- 用户故事建模法
- 四色建模法
- 限界纸笔建模法
2.2 落地写代码
用实际的例子,进行实践
COLA COLA 4.0的 架构的源码
cola-cargo 基于cola的货物运输系统源代码
cola-service-demos、cola-web-demos 是使用cola的maven模版生成的代码
think-cola-master 基于cola的简单注册登陆功能
COLA架构编码约定.pdf