DDD实战,领域驱动设计
2020-02-28 10:46:39 46 举报
AI智能生成
登录查看完整内容
领域驱动设计的原著实在是晦涩难懂, 本文先把DDD的10个核心概念梳理清楚, 以及DDD的分层架构, 如何结合微服务构建 高内聚,低耦合的系统
作者其他创作
大纲/内容
DDD实战
DDD是什么
概念
战略设计
战术设计
图示
微服务与DDD结合
DDD
微服务
解决问题
DDD带来的好处
DDD的核心概念
领域
子域
过程
分类
核心域
通用域
支撑域
通用语言
定义上下文的含义
注意
限界上下文
定义领域边界
实体
值对象
实体和值对象的关系
聚合/聚合根
理解
如何设计聚合
5. 多个聚合根据业务语义和上下文一起划分到同一个限界上下文中
聚合的设计原则
2. 设计小聚合: 降低由于业务过大导致的聚合重构的可能性.
3. 通过唯一标志引用其他聚合: 聚合之间通过关联外部聚合根id的方式引用
5. 通过应用层实现跨聚合的服务调用
聚合/聚合根/实体/值对象 特征
聚合特征
聚合根特征
实体特征
值对象特征
领域事件
识别领域事件
使用场景
微服务内的领域事件
微服务间的领域事件
事件风暴
事件风暴的准备工作
参与者
材料
事件风暴的参与者会把自己的想法和意见写在即时贴上
可用不同的颜色的贴纸区分领域行为
蓝色: 命令
绿色: 实体
橙色: 领域事件
黄色: 补充信息
关注点
DDD分层架构
DDD四层架构
用户接口层
应用层
领域层
基础层
原则
每层只能与其下方的层发生耦合
微服务架构的演进
架构模型分类
整洁架构
最外用户层 -> 应用服务层 -> 领域服务层 -> 领域模型
六边形架构
通过接口与外部进行交互的
最外层用户 -> 适配器 -> 应用层 -> 领域服务层
与DDD分层架构比较
原则都是:\"高内聚 低耦合\"
核心的点
1. 大致都分了两层
2. 合理分层的优势
数字转型
大平台
中台
联通是前台和中台之间的联通
融合是前台流程和数据的融合
然后以共享的方式支持前端一线业务的发展和创新
核心业务链路的联通和不同渠道服务的共享问题
数据中台主要职能
达到的效果
1. 通用中台: 把共享的公共能力进行领域建模
2. 核心中台: 把核心能力进行领域建模
中台建模步骤
中台业务模型建设
1.自顶而下的策略
步骤
3. 根据限界上下文进行微服务设计
2.自底而上的策略
适用于遗留系统业务模型的演进式重构
3. 根据领域模型设计微服务
互联网电商案例
主要领域模型图示
针对互联网中的 用户模型
DDD设计微服务模型
标准代码模型好处
3. 可以轻松应对微服务架构的演进和代码重构
微服务根目录
Interfaces 用户接口层
下级
assembler
实现DTO和领域对象之间的相互转换和数据交换
dto
数据传输的载体
facade
Application 应用层
event
service
应用层会对多个领域服务或其他外部服务进行封装 编排和组合
Domain 领域层
aggregate 聚合
entity
事件相关
一个领域服务由多个实体组合出来的业务逻辑
repository
存放聚合的查询或持久化领域对象的代码
Infrastructure 基础层
基础资源相关的代码
config
配置相关代码
util
0 条评论
回复 删除
下一页