课程简介
本课程基于多年实践领域驱动设计的经验与心得,糅合了 DDD 社区最新发展的理论知识与最佳实践,覆盖从需求到实现全面系统的讲解领域驱动设计。本篇是方法论篇,
目标收益
学员通过课程,可以深入学习到企业级N层的框架实现原理。每一层的职责以及功能目标,DDD中的核心战术概念及工具,比如:领域服务,领域事件,资源库,聚合,实体,值对象。以及DDD的战略建模工具,如:界限上下文,上下文映射图。以及对于以上这些概念,在代码层面的设计于实现。
培训对象
具有以下经验的 架构师,后端开发工程师,以及其他软件从业人员
具有基础的架构设计知识
至少掌握一门面向对象语言
具有基本的面向对象程序设计能力
具有一年或一年以上的业务系统开发经验
课程大纲
一、软件复杂度 - 软件行业的主要任务就是对应复杂度 |
1.领域驱动设计概览 2.战略与战术 3.战略层面的三件事 与 战术层面的核心结构 4.软件复杂度的三个成因 5.分离关注点 – Unix 设计哲学 6.隔离业务复杂度与技术复杂度 7.复杂度的横切与纵切 8.SOLID原则 9.SRP – 单一职责原则 10.OCP – 开放封闭原则 11.LSP – 里氏替换原则 12.ISP – 接口隔离原则 13.DIP – 依赖倒置原则 14.领域驱动设计对软件复杂度的对应 |
二、通用语言 - 工欲善其事必先利其器 |
1.领域专家与开发者的沟通失调 2.通用语言关键点 - 5W2H1E 3.通用语言关键点扩展 - Pre/Post Condition 4.案例 - “高端客户优惠”这个需求如何做? 5.通用语言的价值 6.通用语言的代码表达 7.运用领域场景分析提炼领域知识 8.建立统一语言 |
三、界限上下文 – 有问题必有解决方案 |
1.界限上下文的目的:消除歧义 2.界限上下文与通用语言 3.案例:银行账户在不同上下文的分析与隔离 4.不要将有二义性的领域概念放在同一界限上下文中 5.理解界限上下文 6.识别界限上下文 7.理解上下文映射 8.上下文映射的团队协作模式 9.上下文映射的通信集成模式 辩别限界上下文的协作关系 |
四、架构 – 总有一款适合你 |
1.认识分层架构 2.分层架构的演化 3.领域驱动架构的演进 4.界限上下文与架构 5.六边形架构 6.端口与适配器 7.整洁架构 8.CQRS架构 9.在CQRS中处理具有最终一致性的查询模型 10.事件溯源 Event Souring 11.使用乐观锁处理并发更新 12.事件溯源和发布事件 13.幂等方式处理消息 14.使用快照提升性能 15.管道与过滤器 16.SAGA (消息驱动事务) 17.协同式与编排式 18.SAGA下实现隔离 |
一、软件复杂度 - 软件行业的主要任务就是对应复杂度 1.领域驱动设计概览 2.战略与战术 3.战略层面的三件事 与 战术层面的核心结构 4.软件复杂度的三个成因 5.分离关注点 – Unix 设计哲学 6.隔离业务复杂度与技术复杂度 7.复杂度的横切与纵切 8.SOLID原则 9.SRP – 单一职责原则 10.OCP – 开放封闭原则 11.LSP – 里氏替换原则 12.ISP – 接口隔离原则 13.DIP – 依赖倒置原则 14.领域驱动设计对软件复杂度的对应 |
二、通用语言 - 工欲善其事必先利其器 1.领域专家与开发者的沟通失调 2.通用语言关键点 - 5W2H1E 3.通用语言关键点扩展 - Pre/Post Condition 4.案例 - “高端客户优惠”这个需求如何做? 5.通用语言的价值 6.通用语言的代码表达 7.运用领域场景分析提炼领域知识 8.建立统一语言 |
三、界限上下文 – 有问题必有解决方案 1.界限上下文的目的:消除歧义 2.界限上下文与通用语言 3.案例:银行账户在不同上下文的分析与隔离 4.不要将有二义性的领域概念放在同一界限上下文中 5.理解界限上下文 6.识别界限上下文 7.理解上下文映射 8.上下文映射的团队协作模式 9.上下文映射的通信集成模式 辩别限界上下文的协作关系 |
四、架构 – 总有一款适合你 1.认识分层架构 2.分层架构的演化 3.领域驱动架构的演进 4.界限上下文与架构 5.六边形架构 6.端口与适配器 7.整洁架构 8.CQRS架构 9.在CQRS中处理具有最终一致性的查询模型 10.事件溯源 Event Souring 11.使用乐观锁处理并发更新 12.事件溯源和发布事件 13.幂等方式处理消息 14.使用快照提升性能 15.管道与过滤器 16.SAGA (消息驱动事务) 17.协同式与编排式 18.SAGA下实现隔离 |