代码结构
src/
├── application/ # 应用层
│ ├── dto/ # 数据传输对象
│ │ └── OrderDTO.java
│ ├── assembler/ # DTO转换器
│ │ └── OrderAssembler.java
│ └── services/ # 应用服务
│ └── OrderService.java
│
├── domain/ # 领域层
│ ├── model/ # 领域模型
│ │ ├── aggregates/ # 聚合根
│ │ │ └── Order.java
│ │ ├── entities/ # 实体
│ │ │ └── OrderItem.java
│ │ └── valueobjects/ # 值对象
│ │ ├── Address.java
│ │ └── Money.java
│ ├── repository/ # 仓储接口
│ │ └── OrderRepository.java
│ ├── service/ # 领域服务
│ │ └── OrderDomainService.java
│ └── events/ # 领域事件
│ └── OrderCreatedEvent.java
│
├── infrastructure/ # 基础设施层
│ ├── config/ # 配置
│ │ └── DatabaseConfig.java
│ ├── persistence/ # 持久化实现
│ │ ├── po/ # 持久化对象
│ │ │ └── OrderPO.java
│ │ └── repository/ # 仓储实现
│ │ └── OrderRepositoryImpl.java
│ └── message/ # 消息实现
│ └── kafka/
│ └── OrderEventPublisher.java
│
└── interfaces/ # 接口层
├── facade/ # 外观接口
│ └── OrderFacade.java
└── rest/ # REST接口
└── OrderController.java
开源项目参考
- eShopOnContainers (微软官方)
└── https://github.com/dotnet-architecture/eShopOnContainers
技术栈:.NET Core, Docker, Microservices
架构特点:
├── 完整的微服务电商系统
├── 包含订单、目录、购物车等典型领域
├── 实现了CQRS模式
└── 完善的容器化部署方案
- DDDSample-Core (DDD Sample)
└── https://github.com/citerus/dddsample-core
技术栈:Java, Spring Boot
架构特点:
├── Eric Evans原版DDD示例的现代实现
├── 经典的货运系统领域模型
├── 完整的测试用例
└── 优秀的领域建模示例
- Practical-DDD (Spring Cloud实现)
└── https://github.com/ddd-by-examples/library
技术栈:Java, Spring Cloud, Spring Boot
架构特点:
├── 图书馆管理系统
├── 完整的领域事件实现
├── 丰富的业务规则示例
└── 清晰的限界上下文划分
- mall (电商系统)
└── https://github.com/macrozheng/mall
技术栈:Java, Spring Boot, MyBatis
架构特点:
├── 完整的电商业务架构
├── 详细的文档和架构说明
├── 前后端分离设计
└── 包含丰富的技术整合示例
- order-backend-project (订单系统)
└── https://github.com/e-commerce-sample/order-backend
技术栈:Java, Spring Boot, JPA
架构目录结构:
src/main/java/com/ecommerce/order
├── application/ # 应用层
│ ├── dto/
│ └── service/
├── domain/ # 领域层
│ ├── model/
│ ├── service/
│ └── repository/
├── infrastructure/ # 基础设施层
│ ├── config/
│ ├── persistence/
│ └── messaging/
└── interfaces/ # 接口层
└── rest/
推荐学习顺序
DDDSample-Core:
- 最纯粹的DDD实现
- 适合学习领域建模
- 代码相对简单,容易理解
order-backend-project:
- 单一领域的完整实现
- 现代化技术栈
- 适合实际项目参考
eShopOnContainers:
- 微服务架构的完整示例
- 适合学习大型系统设计
- 包含完整的部署方案
