领域驱动
领域驱动设计实践
DDD遗留系统迁移
DDD遗留系统迁移 迁移策略选择 遗留系统迁移需要根据系统状况选择合适的策略。 迁移策略对比: 绞杀者模式(Strangler Fig Pattern) ┌─────────────────────────────────────────┐ │ API 网关...
DDD测试策略
DDD测试策略 领域层单元测试 领域层测试聚焦于业务规则的正确性,不依赖外部基础设施。 java // 聚合根测试 @ExtendWith(MockitoExtension.class) class OrderTest { @Test void shouldCreateOr...
DDD集成模式
DDD集成模式 事件驱动集成 事件驱动是微服务间集成的首选方式,通过异步事件实现松耦合。 java // 事件发布 @Component public class OrderEventPublisher { private final KafkaTemplate<String, O...
DDD数据模型
DDD数据模型 CQRS模式 CQRS(Command Query Responsibility Segregation)将读写操作分离到不同的模型中。 CQRS 架构: 写入端(Command) 读取端(Query) ┌─────────────────┐...
DDD代码结构
DDD代码结构 分层架构 DDD 推荐的分层架构将代码分为领域层、应用层、基础设施层和用户接口层。 项目结构: order-service/ ├── src/main/java/com/example/order/ │ ├── domain/ # 领域层(核...
DDD与微服务
DDD与微服务 限界上下文作为服务边界 DDD 的限界上下文是划分微服务的最佳指导。每个微服务对应一个限界上下文,拥有独立的领域模型和数据存储。 电商系统微服务划分: ┌─────────────────────────────────────────────────────────────────...
Event Storming建模
Event Storming建模 Event Storming 概述 Event Storming 是 Alberto Brandolini 发明的协作式建模技术。通过在白板上用便签纸表示领域事件,团队可以快速发现业务流程和领域模型。 Event Storming 便签颜色约定: 🟧 橙色:领域事...
DDD战略设计
DDD战略设计 上下文映射模式 上下文映射描述了限界上下文之间的关系和集成方式。 常见的上下文映射关系: 1. 共享内核(Shared Kernel) ┌─────────┐ ┌─────────┐ │ 上下文A │◄───►│ 上下文B │ └─────────┘...
DDD战术设计
DDD战术设计 Repository 模式 Repository 封装了聚合的持久化逻辑,提供类集合的接口。 java // Repository 接口定义在领域层 public interface OrderRepository { Order findById(OrderId id);...
DDD基础概念
DDD基础概念 领域与子域 领域(Domain)是系统要解决的业务问题空间。将复杂领域拆分为子域有助于管理复杂性。 java // 电商领域划分 // 核心域:订单管理 package com.example.order.domain; public class OrderService {...