领域驱动设计实战工作坊
Bruce Zhang 查看讲师
百林哲咨询(北京)有限公司专家团队成员
信通院应用现代化推进中心专家委员会委员,数字现代化首席顾问
浏览:30次
详情 DETAILS

课程简介

当今复杂多变的软件研发领域,企业面临着业务需求快速迭代、系统规模日益庞大以及技术复杂度不断攀升等诸多挑战。传统的软件设计方法,如数据驱动设计和一些常见的面向对象分析与设计方法,在应对这些挑战时逐渐显露出局限性,难以保证软件系统的高质量、可维护性和可扩展性。领域驱动设计(DDD)作为一种以业务领域为核心,强调业务与技术的深度融合的软件设计方法应运而生,它为解决复杂软件系统设计问题提供了全新的思路和有效的方法体系。然而,许多开发者在实际应用领域驱动设计时,往往因缺乏系统性的指导和实战经验,难以充分发挥其优势。

本课程围绕领域驱动设计的核心体系展开,从基础理论到实战应用,全面覆盖需求分析、架构设计、领域建模等关键环节。通过理论讲解、案例分析、实战演练等多种方式,帮助学员深入理解领域驱动设计的核心理念,掌握其统一过程与关键模式,并学会如何在实际项目中应用这些方法,提升软件设计与开发的质量与效率。

课程收益

1、帮助学员理解和掌握领域驱动设计方法体系

2、帮助学员深入分析面向对象设计知识与设计模式

3、帮助学员掌握需求分析与领域建模技术

4、帮助学员掌握战略层面的软件体系架构设计以及微服务架构设计

5、帮助学员学会应用服务、领域逻辑以及基础设施的编程实现

受众人群

软件架构师、系统分析师、开发工程师、项目经理、技术负责人

课程周期

  2天(12H 

课程大纲

标题

授课内容

一、领域驱动设计体系

1. 领域驱动设计体系基础

2. 领域驱动设计统一过程

3. 案例分析

(1) Apache OFBiz是一个开源的、基于J2EE和XML规范的框架,用于构建大型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统。OFBiz采用了MVC模式,并贯穿于业务层和数据层,是典型的采用数据驱动设计的软件项目,广泛采用了违背面向对象设计原则的贫血模型与事务脚本模式,这些实践正是领域驱动设计要竭力避免的。

二、全局分析阶段

1. 统一语言

2. 全局分析6W模型

3. 业务流程分析

4. 识别和编写业务服务

5. 划分子领域

6. 业务架构

7. 案例讲解

(1) 对比WMS系统的“收货”用例,说明业务服务与用例之间的区别,进而获得对应的业务服务图,并按照规定格式编写业务服务规约。

8. 案例演练

(1) 识别购票业务流程的业务服务

(2) 识别技术部落的子领域

① 目标:搭建一个技术部落(TRIBE),将与IT、互联网、数字领域相关的人、部落(业务、社区、兴趣组等)和内容联系起来,提供一个分享与交流的途径。在最基本的层面上,它是一个本地的博客、微博、微信文章、开源代码、活动、讲座、工作以及更多内容的聚合器。

② 根据讲师提供的业务服务,按照服务风暴的全局分析过程,演练如何正确地识别子领域,建立系统的业务架构。

三、架构映射阶段

1. 限界上下文

2. 菱形对称架构

3. 上下文映射

4. 系统上下文

5. 领域驱动架构风格

6. 案例分析

(1) 全球地面航班保障平台是某航空公司的核心系统建设目标,在设计该系统的整个解决方案时,运用了领域驱动设计统一过程,实现了从业务架构向应用架构的映射,包括通过业务服务识别限界上下文的映射过程,通过服务序列图确定上下文映射模式,定义服务契约,获得整个系统的逻辑架构,然后针对客户案例指导团队进行架构设计,输出实践结果。

7. 案例演练

(1) 以全局分析阶段输出的技术部落业务架构为输入,开展架构映射工作坊,结合讲师给出的识别限界上下文的检查项(checklist)对组成业务架构的业务子域做进一步调整,将其映射为限界上下文,然后,根据讲师给出的“报名活动”业务服务规约,绘制服务序列图,推导出多个限界上下文之间的协作关系,定义API契约,并绘制出限界上下文组件图,最终得到整个系统的应用架构。

四、领域建模阶段

1. 领域分析建模

2. 领域设计建模

3. 领域实现建模

4. 领域建模方法

(1) 快速建模法

(2) 角色构造型

(3) 聚合的设计

(4) 服务驱动设计

(5) 测试驱动开发

5. 案例分析

(1) 展示信用卡分期系统/EAS系统的领域建模过程,包括通过快速建模法获得领域分析模型,建立以聚合为基本设计单元的领域设计模型,服务驱动设计获得的序列图脚本,并展示如何通过测试驱动开发进行领域实现建模,然后针对客户案例指导团队进行领域建模,最终输出由文本、图与代码构成的领域模型。

6. 案例讲解

(1) 超市收银业务场景的模型演进

(2) 结算系统领域建模设计的改进

(3) 批量代付业务的领域建模

7. 案例演练

(1) 在架构映射阶段获得应用架构基础上,选择“报名活动”等三个业务服务,利用快速建模法迅速获得领域分析模型,并识别出以聚合为核心的静态设计模型,然后开展服务驱动设计,获得序列图脚本,为进一步的测试驱动设计提供重要的设计输入。

五、领域驱动设计的价值

1. 完整而统一的设计过程和模式

2. 追求高质量设计与编码的领域驱动设计架构风格

3. 通过分而治之控制业务复杂度与技术复杂度

4. 设计原则和模式称为团队共同遵守的研发纪律

5. 成功应用领域驱动设计的两大要素

(1) 边界是核心

(2) 纪律是关键


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1