[ PROMPT_NODE_23700 ]
patterns-reference
[ SKILL_DOCUMENTATION ]
# 架构模式参考
> 常用模式的快速参考及使用指南。
## 数据访问模式
| 模式 | 何时使用 | 何时不使用 | 复杂度 |
|---------|-------------|-----------------|------------|
| **Active Record** | 简单 CRUD,快速原型 | 复杂查询,多数据源 | 低 |
| **Repository** | 需要测试,多数据源 | 简单 CRUD,单数据库 | 中 |
| **Unit of Work** | 复杂事务 | 简单操作 | 高 |
| **Data Mapper** | 复杂领域,高性能 | 简单 CRUD,快速开发 | 高 |
## 领域逻辑模式
| 模式 | 何时使用 | 何时不使用 | 复杂度 |
|---------|-------------|-----------------|------------|
| **Transaction Script** | 简单 CRUD,过程式 | 复杂业务规则 | 低 |
| **Table Module** | 基于记录的逻辑 | 需要丰富行为 | 低 |
| **Domain Model** | 复杂业务逻辑 | 简单 CRUD | 中 |
| **DDD (完整)** | 复杂领域,有领域专家 | 简单领域,无专家 | 高 |
## 分布式系统模式
| 模式 | 何时使用 | 何时不使用 | 复杂度 |
|---------|-------------|-----------------|------------|
| **模块化单体** | 小团队,边界不清晰 | 边界清晰,扩展需求不同 | 中 |
| **微服务** | 扩展需求不同,大团队 | 小团队,简单领域 | 极高 |
| **事件驱动** | 实时,松耦合 | 简单工作流,强一致性 | 高 |
| **CQRS** | 读写性能差异大 | 简单 CRUD,模型相同 | 高 |
| **Saga** | 分布式事务 | 单数据库,简单 ACID | 高 |
## API 模式
| 模式 | 何时使用 | 何时不使用 | 复杂度 |
|---------|-------------|-----------------|------------|
| **REST** | 标准 CRUD,资源 | 实时,复杂查询 | 低 |
| **GraphQL** | 灵活查询,多客户端 | 简单 CRUD,需要缓存 | 中 |
| **gRPC** | 内部服务,高性能 | 公共 API,浏览器客户端 | 中 |
| **WebSocket** | 实时更新 | 简单请求/响应 | 中 |
---
## 简单性原则
**“从简单开始,仅在证明必要时增加复杂性。”**
- 你总能在以后添加模式
- 移除复杂性比添加复杂性要困难得多
- 有疑问时,选择更简单的选项