您现在的位置:首页 > IT资讯 > 领域驱动软件设计实战训练营(北京站+直播)

领域驱动软件设计实战训练营(北京站+直播)

2024/6/4 13:59:33 | 来源:Admin

 



 


一、领域驱动软件设计背景

在软件快速变化的时代,快速变化和激烈的竞争使软件市场快速变革。在软件系统不断地变更后,出现所有的软件企业不得不面对的一个事实,程序变得难于维护、凌乱不堪。软件经过了多次变更以后,设计开始后迷失方向,业务逻辑变得越来越复杂。这种情况加快了软件退化的速度,每一个变更都变得巨大的成本,这就是现代软件企业不得不面对的困境。

 

二、领域驱动软件设计培训对象

中高级工程师、企业架构师、软件设计师、技术决策或解决方案人员等

 

三、领域驱动软件设计培训特色

理论与实践相结合、案例分析与行业应用穿插进行;

专家精彩内容解析、学员专题讨论、分组研究;

通过全面知识理解、专题技能和实践结合的授课方式。


四、领域驱动软件设计培训课程

 

日程

章节

授课内容

第一天

 

第一单元  

剖析领域驱动的设计思想

为什么我们需要领域驱动设计?

1.现如今DDD越来越流行

2.DDD并不能帮助新项目的软件开发

3.DDD真正的作用是日后长期的维护

 

实践DDD的4大难题:

1.准确理解为什么要采用DDD?

2.怎样正确地进行业务领域建模?

3.怎样用领域模型指导开发与变更?

4.如何设计支持领域驱动的架构设计?

 

DDD真正的作用是应对日后的软件维护

1.案例:演示电商网站付款功能代码质量下降的过程

a.案例分析:揭示软件退化的根源

b.DDD的解决之道:业务领域建模

2.案例:演示嵌入式温控系统越来越难于维护的根源

a.案例分析:领域分析才是解决之道

b.DDD的解决之道:基于限界上下文拆分系统

c.案例分析:演示电商网站付款功能代码质量下降的过程

 

软件质量下降的根源:

1.软件总是因变更而变得越来越复杂

2.软件结构已经不再适应复杂的软件需求

3.必须要调整软件结构以适应新的软件需求

DDD的建模过程:

1.每次需求变更时先对需求进行领域分析

2.基于领域分析先进行领域模型的变更

3.基于领域模型的变更去指导程序的变更

 

DDD是应对软件复杂性之道

1.剖析领域驱动的设计思想

2.服务、实体与值对象的概念

3.充血模型与贫血模型的设计思路

4.问题域、子域与限界上下文划分

 

基于领域模型的设计变更

1.演练基于DDD的设计与变更过程

2.演练领域模型如何指导数据库设计

3.演练领域模型如何指导程序设计

4.聚合、仓库与工厂:傻傻分不清

5.限界上下文:系统拆分的利器

 

案例:重新演练电商网站付款功能的变更过程

1.第一个版本的领域模型与设计

2.第一次变更的分析设计过程

3.第二场变更的设计实现

4.第三次变更的设计实现

5.第四次变更与架构演化

第一天

 

第二单元

演练领域驱动的设计过程

领域建模分析过程

1.演练案例:在线订餐系统的领域设计过程

 

基于领域模型的微服务设计

1.领域模型4种关系3种继承的数据库设计

2.聚合层的设计、工厂和仓库的实现

3.基于DDD的微服务架构分层

 

解决DDD的设计难题

1.跨库查询的设计难题与设计实现

2.领域事件的通知机制与设计实现

3.微服务接口的防腐层设计

4.状态查询跟踪的设计思路与代码实现

 

分组练习:按照事件风暴的步骤进行业务领域建模

1. 召开事件风暴会议

2. 进行业务领域建模

3. 基于领域模型设计开发系统

第二天

 

第三单元

领域驱动设计实践

实战演练:远程智慧医疗大数据平台设计过程

 

1.现在向互联网转型,业务变得越来越复杂,怎么开始领域建模?

第一步:站在全局的系统建设规划

第二步:DDD战略设计与限界上下文划分

第三步:各子域的业务领域建模

第四步:上下文地图与各子域的接口设计

2.转型成互联网连锁诊所系统,又该如何分析设计

3.基于领域模型进行新需求的分析

4.基于领域模型进行原有代码的更新维护

5.基于限界上下文进行微服务的拆分,以及这个过程中的坑

第一步:基于DDD进行战略设计的调整

第二步:各子域的业务领域建模调整

第四步:上下文地图与各子域的接口设计

第五步:基于DDD的微服务拆分

6.基于DDD的数据库设计与去中心化的数据治理

7.分组练习:按照领域模型进行设计开发

1) 基于领域模型进行微服务的拆分与设计

2) 基于领域模型进行每个微服务的数据库设计

3) 基于上下文地图形成微服务间的契约与接口

第二天

 

第四单元

基于领域驱动的技术中台建设

1.DDD需要强大技术架构支持

1)降低技术门槛,减少开发工作量 → 制订规范、合理分层、降低复杂度

2)易于业务变更,易于架构演化 → 将业务与技术解耦

3)支持领域驱动,支持微服务 → 通用仓库、工厂及基础设施的设计

4)平台不断完善,功能不断积累 → 敏捷架构设计:架构跑道与使能故事

 

分析当前软件架构设计与架构演化的痛点与根源

阐述技术中台的建设思路

1)将业务与技术解耦 → 整洁架构与六边形架构

2)提取共性,精简业务代码 → 单Controller,单Dao

 

支持领域驱动+微服务的技术中台

1.案例:在线订餐系统的应用

2.通用、可配置的DDD仓库与工厂的设计

3.解决跨库的关联查询与事务处理

4.纯洁的Service与Entity便于不断地架构演化

 

现有系统的整洁架构转型

1.系统级的重构方法与步骤

2.建立接口层解耦业务代码与技术框架的过程

3.基于整洁架构的技术架构演化与快速交付

 

第三天

第五单元

基于DDD的微服务设计实践

实战演练:高并发高可用的订单系统

 

1.案例:电商网站购物功能的设计

TCC方案与阿里Seata

2.演练:运用Seata实现微服务的分布式事务

基于消息的最终一致性设计

3.演练:基于消息实现微服务的分布式事务

 

1.案例:电商网站下单服务的设计

a.单一职责原则与领域驱动设计

b.互联网纵向切分在微服务的实现

c.纵向切分应当注意的设计问题

d.解决跨库关联查询的设计

2.演练:微服务间解决跨库关联查询的设计

 

1.案例:电商网站多渠道支付的微服务实现

a.链式模式

b.分支模式

c.数据共享模式

2.案例:大数据与微服务结合的架构设计

3.案例:电商网站海量订单数据的秒级查询

a.异步消息模式

4.案例:电商网站异步化操作的微服务实现

 

微服务的拆分原则

1.能不拆尽量不拆:减少微服务间的调用

2.该拆分就得拆分

3.公共模块该拆分就得拆分

4.越来越复杂的模块该拆分就得拆分




中培IT学院为您提供优质的IT技术实战培训与咨询服务。我们坚持以协助企业发展,提升员工职业技能为己任。

24H咨询热线:400-808-2006 / 13910781835


近期开班