课程费用

5800.00 /人

课程时长

2

成为教练

课程简介

本课程基于多年实践领域驱动设计的经验与心得,糅合了 DDD 社区最新发展的理论知识与最佳实践,覆盖从需求到实现全面系统的讲解领域驱动设计。本篇是实战篇,

目标收益

学员通过课程,可以深入学习到企业级N层的框架实现原理。每一层的职责以及功能目标,DDD中的核心战术概念及工具,比如:领域服务,领域事件,资源库,聚合,实体,值对象。以及DDD的战略建模工具,如:界限上下文,上下文映射图。以及对于以上这些概念,在代码层面的设计于实现。

培训对象

具有以下经验的 架构师,后端开发工程师,以及其他软件从业人员具有基础的架构设计知识
至少掌握一门面向对象语言
具有基本的面向对象程序设计能力
具有一年或一年以上的业务系统开发经验

课程大纲

一、实体 – 数据容器还是行为载体 1.贫血模型
2.如何避免贫血,实体与领域服务之间的分寸
3.唯一标识
4.委派标识
5.案例:实现实体层超类型(Layer Supertype)
6.实战 - 任务分配执行系统 实体行为归属甄别
二、值对象 – 性能提升小帮手 1.什么是值对象
2.值对象的特征
3.为什么值对象这么容易被忽略
4.案例:地址建模与值对象
5.案例:实现值对象层超类型
三、聚合 – 比类更高一层的封装 1.聚合设计原则
2.聚合设计的过程
3.聚合的一致性边界
4.一个事务中只处理一个聚合
5.UML 中的聚合 与 DDD 中的聚合
6.聚合内实现事务一致性
7.聚合外实现最终一致性
8.案例:更新订单状态与库存扣减 Version 1.0
9.案例:更新订单状态与库存扣减 Version 2.0
10.聚合设计的注意点
四、应用服务 – 用例是乐谱,应用服务是指挥家 11.用例 (Use Case) 与应用服务
12.应用服务中的 编排,转换,验证,转发
13.工作单元 (Unit of Work)
14.数据传输对象 (Data Transfer Object)
15.事务脚本 (Transaction Script) 与领域模型
16.依赖注入在应用服务中的使用
17.案例:实现应用服务
18.应用服务的关注点
19.实战 - 任务分配执行系统 应用层构建
五、领域服务 – 不是实体本身的行为都归它 1.领域服务的幂等性
2.案例:实现领域服务
3.实战 - 任务分配执行系统 领域服务层构建
六、领域事件 – 保持最终一致性的信使 1.领域事件是领域建模中极其重要的部分
2.事务一致性,高并发下的窘境
3.最终一致性,妥协带来高扩展性
4.原则:一个事务中只对一个聚合进行修改
5.案例:实现抽象事件源,发布事件源
6.案例:实现抽象事件处理
7.案例:实现领域事件的发布与订阅
8.实战 - 任务分配执行系统 任务分配领域逻辑
七、资源库 – 聚合的起点与终点 1.集合特性
2.资源库与数据访问层的区别
3.资源库的误解
4.资源库的实现要点
5.案例:资源库的实现
6.领域模型 VS 数据模型
7.案例:泛型资源库
8.实战:实战 - 任务分配执行系统 持久化
一、实体 – 数据容器还是行为载体
1.贫血模型
2.如何避免贫血,实体与领域服务之间的分寸
3.唯一标识
4.委派标识
5.案例:实现实体层超类型(Layer Supertype)
6.实战 - 任务分配执行系统 实体行为归属甄别
二、值对象 – 性能提升小帮手
1.什么是值对象
2.值对象的特征
3.为什么值对象这么容易被忽略
4.案例:地址建模与值对象
5.案例:实现值对象层超类型
三、聚合 – 比类更高一层的封装
1.聚合设计原则
2.聚合设计的过程
3.聚合的一致性边界
4.一个事务中只处理一个聚合
5.UML 中的聚合 与 DDD 中的聚合
6.聚合内实现事务一致性
7.聚合外实现最终一致性
8.案例:更新订单状态与库存扣减 Version 1.0
9.案例:更新订单状态与库存扣减 Version 2.0
10.聚合设计的注意点
四、应用服务 – 用例是乐谱,应用服务是指挥家
11.用例 (Use Case) 与应用服务
12.应用服务中的 编排,转换,验证,转发
13.工作单元 (Unit of Work)
14.数据传输对象 (Data Transfer Object)
15.事务脚本 (Transaction Script) 与领域模型
16.依赖注入在应用服务中的使用
17.案例:实现应用服务
18.应用服务的关注点
19.实战 - 任务分配执行系统 应用层构建
五、领域服务 – 不是实体本身的行为都归它
1.领域服务的幂等性
2.案例:实现领域服务
3.实战 - 任务分配执行系统 领域服务层构建
六、领域事件 – 保持最终一致性的信使
1.领域事件是领域建模中极其重要的部分
2.事务一致性,高并发下的窘境
3.最终一致性,妥协带来高扩展性
4.原则:一个事务中只对一个聚合进行修改
5.案例:实现抽象事件源,发布事件源
6.案例:实现抽象事件处理
7.案例:实现领域事件的发布与订阅
8.实战 - 任务分配执行系统 任务分配领域逻辑
七、资源库 – 聚合的起点与终点
1.集合特性
2.资源库与数据访问层的区别
3.资源库的误解
4.资源库的实现要点
5.案例:资源库的实现
6.领域模型 VS 数据模型
7.案例:泛型资源库
8.实战:实战 - 任务分配执行系统 持久化
提交需求