代码结构

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

开源项目参考

  1. eShopOnContainers (微软官方)
└── https://github.com/dotnet-architecture/eShopOnContainers
  技术栈:.NET Core, Docker, Microservices
  架构特点:
  ├── 完整的微服务电商系统
  ├── 包含订单、目录、购物车等典型领域
  ├── 实现了CQRS模式
  └── 完善的容器化部署方案
  1. DDDSample-Core (DDD Sample)
└── https://github.com/citerus/dddsample-core
  技术栈:Java, Spring Boot
  架构特点:
  ├── Eric Evans原版DDD示例的现代实现
  ├── 经典的货运系统领域模型
  ├── 完整的测试用例
  └── 优秀的领域建模示例
  1. Practical-DDD (Spring Cloud实现)
└── https://github.com/ddd-by-examples/library
  技术栈:Java, Spring Cloud, Spring Boot
  架构特点:
  ├── 图书馆管理系统
  ├── 完整的领域事件实现
  ├── 丰富的业务规则示例
  └── 清晰的限界上下文划分
  1. mall (电商系统)
└── https://github.com/macrozheng/mall
  技术栈:Java, Spring Boot, MyBatis
  架构特点:
  ├── 完整的电商业务架构
  ├── 详细的文档和架构说明
  ├── 前后端分离设计
  └── 包含丰富的技术整合示例
  1. 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/

推荐学习顺序

  1. DDDSample-Core:

    • 最纯粹的DDD实现
    • 适合学习领域建模
    • 代码相对简单,容易理解
  2. order-backend-project:

    • 单一领域的完整实现
    • 现代化技术栈
    • 适合实际项目参考
  3. eShopOnContainers:

    • 微服务架构的完整示例
    • 适合学习大型系统设计
    • 包含完整的部署方案