DDD领域驱动设计学习规划
第一阶段:基础理论学习
核心概念学习
- 战略设计
- 限界上下文(Bounded Context)
- 通用语言(Ubiquitous Language)
- 上下文映射图(Context Mapping)
- 子域划分(Core/Supporting/Generic Subdomains)
- 战术设计
- 实体(Entity)
- 值对象(Value Object)
- 聚合根(Aggregate Root)
- 领域服务(Domain Service)
- 仓储(Repository)
- 工厂(Factory)
- 领域事件(Domain Event)
第二阶段:模式与实践
深入战术模式
- 聚合设计原则与一致性边界
- 领域事件与事件风暴
- CQRS模式深入
- 事件溯源(Event Sourcing)
- 六边形架构(Hexagonal Architecture)
- 整洁架构(Clean Architecture)
实践练习
- 设计一个简单的领域模型(如电商订单系统)
- 实现基本的仓储模式
- 练习领域事件的应用
第三阶段:Java实现
Java技术栈选择
- 基础实现
- 纯Java实现DDD核心模式
- 使用Spring框架支持DDD
- 高级主题
- Spring Data JPA与DDD仓储实现
- Axon框架学习(用于CQRS/ES)
- 领域模型与REST API的映射
实战项目
- 选择中等复杂度业务领域(如库存管理、客户关系管理等)
- 从战略设计到战术实现的完整过程
- 代码重构练习:从贫血模型到充血模型
第四阶段:进阶主题
- 微服务与DDD的结合
- 分布式系统中的DDD挑战
- 大规模系统上下文映射
- DDD与测试驱动开发(TDD)
- 遗留系统的DDD改造策略
第五阶段:项目实战
完整项目开发
- 需求分析与领域建模
- 上下文划分与映射
- 架构设计与实现
- 持续集成与部署
- 重构与优化
推荐项目方向
- 电商平台核心模块
- 金融交易系统
- 物流跟踪系统
- 医疗预约系统
学习工具推荐
- 建模工具:Visual Paradigm, Lucidchart
- 事件风暴:Miro, Mural
- Java框架:Spring Boot, Axon Framework
- 测试工具:JUnit, Mockito, ArchUnit