培训对象: 面向软件架构师、技术负责人、高级开发工程师及产品经理。也适合需要应对复杂业务系统、提升领域建模能力的团队技术人员。
培训目标: 深入理解领域驱动设计的核心理念与战略/战术模式,具备从业务需求中提炼领域模型、划分限界上下文的能力。能够将DDD与微服务架构、整洁架构等工程实践相结合,有效控制软件复杂度。
培训内容介绍:
领域驱动设计概述与软件复杂度:了解DDD的发展历程与核心价值,剖析软件复杂度的三个成因(业务复杂度、技术复杂度、随时间演进的复杂度),理解DDD如何对应这些挑战。
通用语言与领域专家协作:学习通用语言的关键要素(5W2H1E),掌握与领域专家有效沟通的技巧,通过案例“高端客户优惠”需求演示如何提炼领域知识并形成统一语言。
战略设计——限界上下文:深入理解限界上下文的目的:消除歧义。学习如何将有二义性的领域概念隔离在不同的上下文中,以银行账户在不同业务场景下的差异为案例进行分析。
上下文映射与集成模式:掌握上下文映射的团队协作模式(合作关系、客户-供应商等)和通信集成模式(防腐层、开放主机服务、发布语言),辨别限界上下文的协作关系。
战术设计——实体与值对象:学习实体的身份管理、生命周期及可变性,掌握值对象的不变性与自包含特性,通过实际案例区分何时使用实体、何时使用值对象。
聚合与事务边界:深入讲解聚合的设计原则,理解聚合根的作用、事务边界的划定及最终一致性与Sagas的应用场景。
领域服务与应用服务:明确领域服务与应用服务的职责划分,学习何时使用领域服务处理跨实体的业务流程,以及仓储模式的实现与持久化考虑。
领域事件与事件驱动建模:掌握领域事件的定义与发布机制,学习事件风暴的工作坊方法,通过事件驱动实现系统的解耦与扩展。
DDD与架构演进:学习分层架构的演化历程,掌握六边形架构、端口与适配器、整洁架构的设计思想,理解限界上下文与架构的映射关系。
CQRS与事件溯源:深入讲解命令查询职责分离模式,学习在CQRS中处理具有最终一致性的查询模型,掌握事件溯源的基本原理与快照优化技术。
SAGA与分布式事务:学习消息驱动事务的处理模式,对比协同式SAGA与编排式SAGA的实现差异,掌握在SAGA下实现隔离的方法。
领域驱动设计实战演练:通过咖啡自动贩卖机等完整案例,演练从需求分析、事件风暴、限界上下文划分到代码实现的全过程,形成完整的DDD落地实践。