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