第一单元
为什么我们需要领域驱动设计 |
为什么我们需要领域驱动设计
1. 我们现在面对的是快速变化的时代
2. 变更越频繁,代码质量下降越快
案例:演示电商网站付款功能代码质量下降的过程
案例分析:揭示软件退化的根源
3. 系统规模越来越大,系统越来越复杂
案例:演示嵌入式温控系统越来越难于维护的根源
案例分析:领域分析才是解决之道
DDD是应对软件复杂性之道
1. 剖析领域驱动的设计思想
2. 问题域、子域与限界上下文划分
3. 演练基于DDD的设计与变更过程
4. 领域模型如何指导数据库设计
5. 领域模型如何指导程序设计
6. 聚合、仓库与工厂:傻傻分不清
7. 限界上下文:微服务拆分的利器
|
第二单元
领域建模设计实战演练 |
业务领域建模实践方法:
1. 原文分析法
2. 四色建模法
3. 事件风暴法
原文分析法设计实战
1. 需求讨论中领域建模
2. 用例模型分析建模
3. 基于用例模型的原文分析法
案例:智能温控系统的设计建模过程
四色建模法设计实战
1. 四色建模法的设计思想
2. 时间原型、角色原型、PPT原型与描述原型
实战演练:远程智慧医疗大数据平台设计过程
1. 系统的建设规划
2. 限界上下文划分
3. 各子域业务领域建模
1) 智慧诊疗数据模型的分析
2) 诊所管理信息系统的分析
4. 各子域的接口设计
1) 上下文地图的模型分析
2) 微服务接口的方案设计
5. 微服务的设计实现
1) 去中心化的技术治理
2) 微服务的技术中台
3) 微服务的云端应用平台
事件风暴建模法设计实战
1. 从领域中吸取知识
2. 统一语言建模
3. 事件风暴会议
1) 事件即事实的设计思路
2) 召开事件风暴会议
3) 聚合与聚合根
4) 问题子域与限界上下文
5) 上下文地图与接口定义
4. 业务领域建模
基于领域模型的系统设计
1. 小而专的系统设计
2. 限界上下文与系统划分
3. 上下文地图与系统接口
4. 去中心化的数据库设计
5. 聚合层的系统设计
实战演练:学员分组演练
用户提供案例 或 智能温控系统
|
第三单元
基于领域驱动的技术架构建设 |
DDD需要强大技术架构支持
1. 降低技术门槛,减少开发工作量 → 制订规范、合理分层、降低复杂度
2. 易于业务变更,易于架构演化 → 将业务与技术解耦
3. 支持领域驱动 → 通用仓库、工厂及基础设施的设计
4. 平台不断完善,功能不断积累 → 敏捷架构设计:架构跑道与使能故事
支持DDD的技术架构建设思路
1. 分析当前软件架构设计与架构演化的痛点与根源
2. 阐述技术架构的建设思路
1)将业务与技术解耦 → 整洁架构与六边形架构
2)提取共性,精简业务代码 → 单Controller,单Dao
支持领域驱动的技术架构
1. 通用、可配置的DDD仓库与工厂的设计
2. 解决跨库的关联查询与事务处理
3. 纯洁的Service与Entity便于不断地架构演化
现有系统的整洁架构转型
1. 系统级的重构方法与步骤
2. 建立接口层解耦业务代码与技术框架的过程
3. 基于整洁架构的技术架构演化与快速交付
|