领域驱动设计
2021-08-25 21:39:06 0 举报
AI智能生成
关注公众号:架构师修行录,学习更多画图技巧
作者其他创作
大纲/内容
核心概念
实体
有ID标识,有生命周期,有状态(用值对象来描述状态),实体通过ID进行区分
值对象
核心本质是值,与是否有复杂类型无关,值对象没有生命周期,通过两个值对象的值是否相同区分是否是同一个值对象,值对象主要用于描述实体的状态
聚合&聚合根
实体,聚合根的ID全局唯一标识,聚合根下面的实体的ID在聚合根内唯一即可
让实体和值对象协同工作,在实现公共业务逻辑的时候,可以保证数据的一致性;
限界上下文
域
为什么用领域驱动
软件
为什么没有火起来
项目不复杂,用着麻烦
新项目
模型设计-数据库设计-程序设计(充血模型/贫血模型)
充血模型与贫血模型
DDD领域建模与架构设计
基本概念
作用与意义
适用场景
领域建模
领域发现方法
事件风暴
四色建模法
建模步骤
1.利用统一语言梳理业务
2.识别聚合与聚合根
聚合设计原则
聚合是用来封装真正的不变性,而不是简单的将对象组合在一起
聚合应尽量设计的小,尽可能小的拆分,可以避免重构,重新拆分
业务决定聚合,业务改变聚合。
聚合之间的关联通过ID,而不是对象引用
聚合内强一致性,聚合之间最终一致性
应用层实现跨聚合的调用
避免跨聚合的领域服务调用和数据表关联
3.划分限界上下文
架构设计
跨库关联查询解决方案
设计思路
空间换时间,数据冗余
数据补填
去掉Join操作
第三范式影响Join操作
CQRS
宽表查询(NOSQL、ES)
整洁架构
六边形架构
微服务架构设计的基础
设计实现
防腐层设计
Feign
Ribbon
增删改服务:统一Controller、单Dao
查询服务:
清晰架构
0 条评论
下一页