工程师
其他
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

面向场景的领域驱动设计全过程工作坊

Bruce Zhang

前ThoughtWorks 架构师、敏捷教练

先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等⼤大型中外企
业,任职⾓角⾊色为⾼高级软件⼯工程师,架构师,技术总监,⾸首席咨询师。现为深圳⼤
大眼科技有限公司的⾸首席架构师,联合创始⼈人。精通包括 C#、Java、Ruby、Scala、
Python、JavaScript 等多种语⾔言,熟练掌握⾯面向对象思想、领域驱动设计、函数式语
⾔言、架构、⼤大数据分析、敏捷与过程改进,并致⼒力于⼤大型软件企业的⾯面向服务系
统架构设计以及互联网 Web 系统架构设计。在 ThoughtWorks 期间,作为⼀一名咨询师,
主要为客户提供组织的敏捷转型、过程改进、系统架构监理、领域设计、代码质量提升等咨
询⼯工作。目前,作为公司产品的架构师,致力于商业智能产品与⼤大数据分析平台的开发
与架构设计

著译作包括《解构领域驱动设计》、《软件设计精要与模式》、《架构宝典》、《高可用可伸缩微服务架构》、《Java设计模式》、《恰如其分的软件架构》、《WCF服务编程》、《人件》、《重构——改善既有代码设计》评注版、《架构之美》评注版。

作为主持⼈人或讲师多次被应邀参加如中国软件⼤大会、QCon、MPD 大会、
Agile China、Scrum Gathering 等⼤大型会议,并作为培训讲师曾先后为摩托罗拉、惠普、
花旗银⾏行、携程、TCL、中兴通讯、赛 门铁克,广发证券、平安银⾏行等企业培训架构、
设计、DDD、敏捷等专题内容。著译作包括《软件设计精要与模式》、《Java 设计模式》、《恰如其分的软件架构》、《WCF 服务编程》、《⼈人件》等。目前,正在撰写《架构之
美(Beatiful Architecture)》评注版,即将出版。

先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等⼤大型中外企 业,任职⾓角⾊色为⾼高级软件⼯工程师,架构师,技术总监,⾸首席咨询师。现为深圳⼤ 大眼科技有限公司的⾸首席架构师,联合创始⼈人。精通包括 C#、Java、Ruby、Scala、 Python、JavaScript 等多种语⾔言,熟练掌握⾯面向对象思想、领域驱动设计、函数式语 ⾔言、架构、⼤大数据分析、敏捷与过程改进,并致⼒力于⼤大型软件企业的⾯面向服务系 统架构设计以及互联网 Web 系统架构设计。在 ThoughtWorks 期间,作为⼀一名咨询师, 主要为客户提供组织的敏捷转型、过程改进、系统架构监理、领域设计、代码质量提升等咨 询⼯工作。目前,作为公司产品的架构师,致力于商业智能产品与⼤大数据分析平台的开发 与架构设计 著译作包括《解构领域驱动设计》、《软件设计精要与模式》、《架构宝典》、《高可用可伸缩微服务架构》、《Java设计模式》、《恰如其分的软件架构》、《WCF服务编程》、《人件》、《重构——改善既有代码设计》评注版、《架构之美》评注版。 作为主持⼈人或讲师多次被应邀参加如中国软件⼤大会、QCon、MPD 大会、 Agile China、Scrum Gathering 等⼤大型会议,并作为培训讲师曾先后为摩托罗拉、惠普、 花旗银⾏行、携程、TCL、中兴通讯、赛 门铁克,广发证券、平安银⾏行等企业培训架构、 设计、DDD、敏捷等专题内容。著译作包括《软件设计精要与模式》、《Java 设计模式》、《恰如其分的软件架构》、《WCF 服务编程》、《⼈人件》等。目前,正在撰写《架构之 美(Beatiful Architecture)》评注版,即将出版。

课程费用

6800.00 /人

课程时长

2

成为教练

课程简介

工作坊介绍:
领域驱动设计全过程工作坊将以事件风暴为纵贯线,以领域场景为横切面,驱动从战 略设计到战术设计的全生命周期的完整开发过程。内容涵盖事件风暴、限界上下文、 上下文映射、场景驱动设计和测试驱动开发。整个工作坊围绕为学在线课堂的案例全程演练具有实操价值的领域驱动设计方法。

目标收益

通过本次工作坊,你将能够深刻体会领域驱动从战略设计到战术设计的全过程;你将学到如何将事件风暴运用到具体的项目开发中,并利用它进行业务分析、架构设计和编程开发,在降低业务复杂度的同时提高开发质量;你将学到如何利用场景驱动设计固化设计和开发过程,在现有开发团队中实现领域驱动设计在复杂系统下的软着陆。

培训对象

1、专注于行业软件开发或互联网开发的软件从业者
2、希望掌握事件风暴方法的业务分析人员与开发人员
3、希望提高领域建模与分析能力的软件设计人员
4、希望掌握领域驱动设计方法并运用到项目中的后端开发人员

课程大纲

领域驱动设计过程 (1小时) 贯穿战略式设计到战术式设计,整体介绍领域驱动设计的完整过程和基本概念。
事件风暴(1小时) 介绍事件风暴的基本概念,包括领域事件的基本特征,事件风暴的设计驱动力,并介绍事件风暴的可视化符号特征,为开展事件风暴工作坊做准备。
探索业务全景 (3小时) 通过识别事件风暴的领域事件,并利用事件因果关系的驱动力识别各自的前置事件和 后置事件,形成一条或多条代表了时间轴的事件流。
探索过程包括:
• 识别代表业务全景的领域事件
• 标记代表问题、重要关注点的热点
• 为每个领域事件识别参与者
• 对所有事件进行横向和纵向的切分,获得候选限界上下文
• 遍历所有事件,确定上下文映射

领域分析建模 (2小时) 针对限界上下文内的领域事件进行领域分析建模。这个过程属于事件风暴的第二阶段,将进一步确定领域分析模型。分析过程如下:
• 根据领域事件确定决策命令
• 根据决策命令确定读模型
• 根据决策命令和领域事件之间的关系确定聚合
• 根据读模型、聚合获得领域分析模型
场景驱动设计 (1小时) 选择一个领域场景,由参与者开启一个初始状态,开始执行具有时序性的连续任务, 角色之间采用行为协作来共同满足业务价值,这就是场景驱动设计(Scenario Driven Design)。
这个过程是从领域分析模型到领域设计模型的关键步骤,同时也有利于降低开发团队 的设计门槛,形成固化的领域驱动战术设计过程。
场景驱动设计的过程 (2小时) 场景驱动设计以事件风暴识别出来的领域场景为起点,以领域分析模型中的模型对象 结合角色构造型作为参与协作的设计元素,固化为一个可按部就班执行的动态设计过 程。整个设计过程分为三个步骤:
• 识别场景:从需求中识别出独立的具有业务价值的领域场景
• 分解任务:根据职责的层次对领域场景进行任务分解
• 分配职责:为领域驱动设计角色构造型分配不同层次的职责
测试驱动开发 (2小时) 场景驱动设计与测试驱动开发之间形成了一种相辅相成的设计伴侣。场景驱动设计分解出来的任务以及角色构造型的协作时序图,可以作为测试驱动开发的起点。测试驱动开发的代码编写又反过来验证场景驱动设计的正确性,并通过重构改进代码质量, 并重新发现之前未曾发现的隐含概念。在本次工作坊中,我们将选择一个领域场景, 严格按照测试驱动开发的开发节奏进行。
领域驱动设计过程 (1小时)
贯穿战略式设计到战术式设计,整体介绍领域驱动设计的完整过程和基本概念。
事件风暴(1小时)
介绍事件风暴的基本概念,包括领域事件的基本特征,事件风暴的设计驱动力,并介绍事件风暴的可视化符号特征,为开展事件风暴工作坊做准备。
探索业务全景 (3小时)
通过识别事件风暴的领域事件,并利用事件因果关系的驱动力识别各自的前置事件和 后置事件,形成一条或多条代表了时间轴的事件流。
探索过程包括:
• 识别代表业务全景的领域事件
• 标记代表问题、重要关注点的热点
• 为每个领域事件识别参与者
• 对所有事件进行横向和纵向的切分,获得候选限界上下文
• 遍历所有事件,确定上下文映射

领域分析建模 (2小时)
针对限界上下文内的领域事件进行领域分析建模。这个过程属于事件风暴的第二阶段,将进一步确定领域分析模型。分析过程如下:
• 根据领域事件确定决策命令
• 根据决策命令确定读模型
• 根据决策命令和领域事件之间的关系确定聚合
• 根据读模型、聚合获得领域分析模型
场景驱动设计 (1小时)
选择一个领域场景,由参与者开启一个初始状态,开始执行具有时序性的连续任务, 角色之间采用行为协作来共同满足业务价值,这就是场景驱动设计(Scenario Driven Design)。
这个过程是从领域分析模型到领域设计模型的关键步骤,同时也有利于降低开发团队 的设计门槛,形成固化的领域驱动战术设计过程。
场景驱动设计的过程 (2小时)
场景驱动设计以事件风暴识别出来的领域场景为起点,以领域分析模型中的模型对象 结合角色构造型作为参与协作的设计元素,固化为一个可按部就班执行的动态设计过 程。整个设计过程分为三个步骤:
• 识别场景:从需求中识别出独立的具有业务价值的领域场景
• 分解任务:根据职责的层次对领域场景进行任务分解
• 分配职责:为领域驱动设计角色构造型分配不同层次的职责
测试驱动开发 (2小时)
场景驱动设计与测试驱动开发之间形成了一种相辅相成的设计伴侣。场景驱动设计分解出来的任务以及角色构造型的协作时序图,可以作为测试驱动开发的起点。测试驱动开发的代码编写又反过来验证场景驱动设计的正确性,并通过重构改进代码质量, 并重新发现之前未曾发现的隐含概念。在本次工作坊中,我们将选择一个领域场景, 严格按照测试驱动开发的开发节奏进行。

活动详情

提交需求