驾驭复杂性:领域驱动设计的核心理论分析

目录

一、领域驱动设计两大设计:战略设计和战术设计

(一)战略设计

1.出发角度与目标

2.实现方式:事件风暴与模型确立(用例分析、场景分析和用户旅程分析)

3.用三步来划定领域模型和微服务的边界

(二)战术设计

1.出发角度与目标

2.实现方式:DDD 分层架构、整洁架构、CQRS 和六边形架构等  (我们采用DDD 分层架构)

3.代码模型强调两点:聚合之间的代码边界一定要清晰+一定要有代码分层的概念

二、理解和分析领域+子域+核心域+通用域+支撑域

(一)整体理解领域与子域的概念(以桃树生物学知识体系的建立为例来加深理解)

(二)理解核心域、通用域和支撑域的划分及具体目的

1.核心域

2.通用域

3.支撑域

4.划分核心域、支撑域和通用域的主要目标

三、理解和分析界限上下文,定义领域边界

(一)通用语言

(二)限界上下文

四、理解和分析实体和值对象

(一)对于实体的具体理解

1.实体的业务形态

2.实体的代码形态

3.实体的运行形态

4.实体的数据库形态

(二)对于值对象的具体理解

1.实体的业务形态

2.实体的代码形态

3.实体的运行形态

4.实体的数据库形态

5. 值对象的优势和局限

(三)对于实体与值对象关系的理解

1.基本的关系理解

2.不同场景下关系的不同

五、理解和分析聚合思想:聚合和聚合根

(一)对聚合的理解和分析

(二)对聚合根的理解和分析

(三)聚合、聚合根、实体、值对象的对比

(四)基本理解综合

六、理解很分析领域事件来解耦微服务

(一)领域事件的识别

(二)微服务内外的领域事件分析

1. 微服务内的领域事件

2. 微服务之间的领域事件

(三)领域事件总体架构

1. 事件构建和发布

2. 事件数据持久化

3. 事件总线 (EventBus)

4. 消息中间件

5. 事件接收和处理

(四)具体案例分析

参考书籍、文献和资料


干货分享,感谢您的阅读!

领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。

微服务拆分困境产生的根本原因:不知道业务或者微服务的边界到底在什么地方。

DDD 核心思想:通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。

对于领域驱动设计的学习做的总结主要写三篇博客,主要包括三部分:基本理论总结与分析、架构分析与代码设计、具体应用设计分析,主要参考的资料为极客时间的欧创新架构师的《DDD》实战,其他参考书籍在文章下方的参考书籍中。

本次主要总结DDD基本理论总结与分析

评论 3026
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张彦峰ZYF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值