DDD实践的基本流程 - 战术设计
如果无法正常显示,请先停止浏览器的去广告插件。
1. 请扫码签到
2. DDD实践的基本流程-战术设计
张海光/机票目的地事业群
3. 个人简介
姓名:张海光
部门:业务研发-报价中心-报价组
简介:2017年7月加入去哪儿
从事酒店研发6年
对酒店相关的技术有浓厚的兴趣
2020年参加酒店报价基于DDD重构,是其
技术负责人
4. 关键阶段
5. 架构
CONTENTS 目录
微服务拆分原则
案例
6. 01
架构
7. 架构
分层架构
CQRS
8. 架构-四层架构
用户接口层
用户接口层
用户界面
Web服务
基础层 其他
接口实现
应用层
应用服务
用户接口层
应用层
接口
领域层
领域层
基础层
领域服务
应用层
聚合
实体
数据库
值对象
基础层
领域层
事件总线
领域事件
接口
基 第
础 三
层 方
工
具
接口
API网关
其
他
基
础
组
件
基
础
服
务
缓存
9. 架构-洋葱架构
10. 架构-六边形架构
11. 架构-总结
基础层
用户接口层
应用层
领域层
12. 架构-CQRS
DTO
查询服务
持久化
读模型
查询模型存储
事件
UI
命令服务
DTO
领域模型
写模型
持久化
命令模型存储
13. 架构-微服务化
到达的事件
到达的事件
离开的事件
14. 02
微服务拆分原则
15. 微服务拆分原则
AKF
单一职责
组织架构和团队规模
前后端分离
高内聚,低耦合
DDD
康威定律
业务变化频率和业务关联
演进式拆分
16. 微服务拆分原则-康威定律
1组织沟通方式会通过系统设计表
达出来 1解决好人与人的沟通问题,才能
有一个好的系统设计
2时间再多一件事情也不可能做的
完美,但总有时间做完一件事情 2一口气吃不成胖子,先抓主线,
先搞定能搞定的
3线型系统和线型组织架构间有潜
在的异质同态特性
4大的系统组织总是比小系统更倾
向于分解
3你想要什么样的系统,就搭建什
么样的团队,减少沟通成本
4一个大的组织因为沟通成本/管理问
题,总为被拆分成一个个小团队
17. 03
案例
18. 代码示例-武松打虎-背景
武松回家
武松打死虎
聚合:人
实体:人
值对象:状态,地址
方法:出拳,出脚,用武器
聚合:老虎
实体:老虎
值对象:状态
方法:咬
县衙领赏
到家
聚合:打虎任务
实体:任务
值对象:任务状态,老虎,人
领域事件:打虎后,通知县衙更新奖金
领域服务:根据税收策略计算奖金
方法:打老虎
支付消息:更新悬赏任务
19. 案例-武松打虎-流程
景阳冈
选武松打虎
用武松
获取武松,老虎
创建打虎任务(武松,老虎)
调打虎任务的打虎方法
调后台保存任务
通知县衙
武松,老虎,打虎任务
后台打虎任务操作接口
后台通知接口
调打虎任务操作
发通知:
武松打死老虎
县衙
县衙
武松,打虎任务ID
更新打虎任务:
1获取打虎任务
2调领域服务获取奖金
3后台记录保存
后台打虎任务操作接口
打虎奖金领域服务
打虎任务
领赏:
1获取打虎任务
2武松拿到钱
3调后台更新状态
打虎任务
后台打虎任务操作接口
收到通知:
更新打虎任务(武松)
调打虎任务操作
调获打虎任务操作
20.
21. 请扫码填写评价