4006-998-758
3000+课程任你选择
领域驱动设计实战
研发学院 体系架构设计 产品经理
张逸

高质量编码实践者,领域驱动设计布道师,微服务系统架构师,大数据平台架构师,敏捷转型咨询师。热衷于编程语言学习与技艺提升,致力于将企业架构、精益需求管理、领域驱动设计与微服务架构完美结合,打造面向企业的业务中台;致力于将数据仓库、实时流处理、机器学习与高性能存储完美结合,打造面向行业的智能数据中台。

拥有近20年的软件开发与架构设计经验,曾先后就职于中兴通讯、惠普 GDCC、中软国际、ThoughtWorks 等大型中外企业,任职角色为高级软件工程师、架构师、技术总监、首席咨询师。精通包括 Java、Scala、Python、C#、JavaScript、Ruby 等多种语言,熟练掌握面向对象思想、测试驱动开发与重构、领域驱动设计、函数式编程、架构、大数据分析、敏捷与过程改进,并致力于大型软件企业的面向服务系统架构设计、大数据平台架构设计以及互联网 Web 系统架构设计,曾经连续四届荣获微软最有价值专家,具有丰富的企业软件系统和分布式开发经验。


查看老师详情
课程内容


课程简介


本次交流重点在于讲解领域驱动设计的方法体系,并将领域驱动设计与业务分析与建模技术结合起来,通过领域模型正确反映业务需求,以便于领域专家与业务分析人员、开发团队就业务需求达成共识,促进对业务需求的理解,并建立面向领域的架构体系以快速响应需求变化。


课程大纲


时间

主题

内容

第一天

上午

领域驱动设计体系

以高屋建瓴的方式概括讲解整个领域驱动设计体系,内容包括:

经典领域驱动设计体系

软件系统复杂度剖析

领域驱动设计统一过程

讲解由Eric Evans提出的经典领域驱动设计,对整套方法体系和过程有一个完整的理解,然后,剖析软件系统的复杂度,明确复杂度的产生在于软件系统的规模与业务需求的变化,由此形成业务复杂度与技术复杂度。而领域驱动设计通过限界上下文与领域建模可以在一定程度降低业务复杂度,响应业务需求的变化,并通过隔离业务复杂度与技术复杂度整体降低软件复杂度。

针对领域驱动设计存在的不足,提出领域驱动设计统一过程,包括需求分析、架构设计与领域建模等内容,并在领域驱动设计的指导原则下进行


全景分析阶段

对整个项目进行业务的全局分析,内容包括:

全局分析的5W模型

价值需求分析

业务需求分析

全局分析阶段会梳理目标系统的价值需求和业务需求,利用5W模型梳理目标系统的利益相关人、系统愿景和范围,获得价值需求,并在价值需求的指导下,梳理参与者、目标系统与伴生系统之间的协作关系,获得业务流程,再结合业务流程的三要素“角色、场景与时间”切分业务场景与业务活动。

在进行价值需求分析与业务需求分析中,需要用到需求分析的方法,包括:

电梯演讲

用户移情图

用户画像

用户旅程图

用例分析方法(或事件风暴)

第一天

下午

架构映射阶段

在领域驱动的战略设计阶段,以领域为核心驱动力,以限界上下文为核心模式构建面向领域的架构体系,内容包括:

限界上下文

上下文映射

领域驱动架构

通过全局分析阶段输出的业务场景与业务活动,利用V模型从领域维度识别限界上下文。限界上下文作为业务能力的纵向切分、领域模型的知识语境,是响应业务变化的关键架构因素。由限界上下文之间的协作形成上下文映射,并根据领域驱动设计原则,建立面向领域的架构体系,形成以菱形对称架构与分层架构为支撑的领域驱动架构。

第二天

上午

领域建模阶段

以领域场景为建模核心开展领域模型驱动设计,是保证领域驱动设计落地的重要条件,内容包括:

领域分析建模

领域设计建模

领域实现建模

在限界上下文的知识边界内分析领域逻辑,提炼领域概念,在统一语言的指导下迭代地进行领域建模,包括建立清晰表达了领域概念的领域分析模型,与以聚合为核心要素的领域设计模型,通过场景驱动设计确定每个领域模型对象的职责,并顺利地引导到领域实现建模,以测试驱动开发的流程编写领域实现代码与测试代码。

在进行领域建模时,会使用到如下方法:

四色建模(事件风暴)

角色构造型

场景驱动设计

测试驱动开发

第二天

下午

领域驱动设计实践

案例:企业应用套件

结合企业应用套件案例讲解领域驱动设计统一过程,全面展现了如何针对一个软件系统开展全局分析、架构映射和领域建模工作,以此向团队展示完整的领域驱动设计方法体系,培养和建设符合领域驱动设计成熟度模型的开发团队,确定实施领域驱动设计的最佳实践。


返回上一级