DDD实战演练工作坊


软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开发。而在业务知识梳理的过程中,我们必然会形成某个领域知识,根据领域知识来一步步驱动软件设计,就是领域驱动设计(DDD)的基本概念。

领域驱动设计全过程工作坊将以事件风暴为纵贯线,以领域场景为横切面,驱动从战略设计到战术设计的全生命周期的完整开发过程。内容涵盖事件风暴、限界上下文、上下文映射、角色构造型、场景驱动设计和测试驱动开发。整个工作坊围绕一个全真案例进行演练,实践具有实操价值的领域驱动设计方法。
  • 课程难度:中高级
  • 课程人数:20人
  • 费用:6500元/人,3~4人:6200元/人,5人及以上:6000元/人
  • 垂询电话:+86 132 4116 6558
  • 报名链接:https://www.bagevent.com/event/6744082
  • 咨询微信:liyingjiesf
    WechatIMG7.jpeg


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


课程设计

领域驱动设计过程

贯穿战略式设计到战术式设计,整体介绍领域驱动设计的完整过程和基本概念。
  • DDD概览
  • DDD相关基本概念
  • DDD战略设计
  • DDD战术设计
  • DDD设计完整过程


事件风暴

介绍事件风暴的基本概念,包括领域事件的基本特征,事件风暴的设计驱动力,并介绍事件风暴的可视化符号特征,为开展事件风暴工作坊做准备。
  • 领域事件的基本特征
  • 事件风暴的设计驱动力
  • 事件风暴的可视化符号特征
  • 准备开展事件风暴工作坊


探索业务全景

通过识别事件风暴的领域事件,并利用事件因果关系的驱动力识别各自的前置事件和后置事件,形成一条或多条代表了时间轴的事件流。
  • 识别代表业务全景的领域事件
  • 标记代表问题、重要关注点的热点
  • 为每个领域事件识别参与者
  • 对所有事件进行横向和纵向的切分,获得候选限界上下文
  • 遍历所有事件,确定上下文映射


领域分析建模

针对限界上下文内的领域事件进行领域分析建模。这个过程属于事件风暴的第二阶段,将进一步确定领域分析模型。
  • 根据领域事件确定决策命令
  • 根据决策命令确定读模型
  • 根据决策命令和领域事件之间的关系确定聚合
  • 根据读模型、聚合获得领域分析模型


领域设计模型

基于领域驱动设计的战术设计要素提炼领域设计模型的角色构造型。在领域分析模型基础之上,采用固化的聚合设计方法,确定聚合边界,进而获得领域设计模型。
  • 表达领域设计模型
  • 实体
  • 值对象
  • 对象图与聚合
  • 聚合设计原则
  • 聚合之间的关系
  • 聚合的设计过程
  • 领域模型对象的生命周期-工厂/资源库
  • 领域服务
  • 应用服务


场景驱动设计

场景驱动设计以事件风暴识别出来的领域场景为起点,以领域分析模型中的模型对象结合角色构造型作为参与协作的设计元素,固化为一个可按部就班执行的动态设计过程。
  • 场景的设计驱动力
  • 场景驱动设计与DCI模式
  • 识别场景:从需求中识别出独立的具有业务价值的领域场景
  • 分解任务:根据职责的层次对领域场景进行任务分解
  • 分配职责:为领域驱动设计角色构造型分配不同层次的职责


领域实现建模

为领域设计模型获得的领域场景编写用户故事,确定任务的测试用例,然后通过测试驱动开发驱动出领域层的产品代码与测试代码。
  • 测试优先的领域实现建模
  • 深入理解简单设计
  • 对象关系映射
  • 领域模型与数据模型
  • 领域驱动设计对持久化的影响


分层架构与代码模型

在领域层的实现代码基础上,通过分层架构确定各个层次之间的职责与关系,并基于业务全景分析获得的限界上下文和上下文映射,确定整个系统的代码模型。
  • 认识分层架构
  • 分层架构的演化
  • 领域驱动架构的演进
  • 限界上下文与架构
  • 限界上下文对架构的影响
  • 领域驱动设计的代码模型
  • 代码模型的架构策略


学员要求:
  • 具有基础的架构设计知识
  • 至少掌握一门面向对象语言
  • 具有基本的面向对象程序设计能力
  • 具有一年或一年以上的业务系统开发经验


报名链接:https://www.bagevent.com/event/6744082

0 个评论

要回复文章请先登录注册