设计文档规范

1 minIntermediate2026/6/14

RFC、ADR、技术方案文档的编写规范与最佳实践。

1. RFC文档

1.1 RFC概述

RFC(Request for Comments)用于提出和讨论技术方案,在实施前获取团队反馈。

1.2 RFC模板

# RFC: [标题]

## 元数据

- 作者:
- 状态: 草案 / 评审中 / 已批准 / 已拒绝
- 创建日期:
- 更新日期:

## 摘要

一段话描述本RFC的核心内容。

## 动机

为什么需要做这件事?解决什么问题?

## 详细设计

### 架构变更

### API设计

### 数据模型

### 关键算法

## 替代方案

列出考虑过的其他方案及选择理由。

## 兼容性

对现有系统的影响和迁移方案。

## 风险与缓解

| 风险 | 影响 | 缓解措施 |
| :--- | :--- | :------- |
|      |      |          |

## 时间线

里程碑和预期完成时间。

## 开放问题

待讨论的问题。

2. ADR文档

2.1 ADR概述

ADR(Architecture Decision Record)记录重要的架构决策及其上下文。

2.2 ADR模板

# ADR-[编号]: [决策标题]

## 状态

[提议 | 已接受 | 已废弃 | 已替代]

## 上下文

描述促使做出此决策的背景和问题。

## 决策

我们决定采取的行动。

## 理由

为什么做出这个决策。

## 后果

### 正面

### 负面

### 风险

2.3 ADR示例

# ADR-003: 选择PostgreSQL作为主数据库

## 状态

已接受

## 上下文

系统需要选择关系型数据库,需支持JSON查询、全文搜索和GIS。

## 决策

选择PostgreSQL而非MySQL。

## 理由

1. 原生JSON/JSONB支持更好
2. 扩展生态更丰富(PostGIS、pg_trgm)
3. 并发控制更成熟(MVCC)
4. 团队经验更丰富

## 后果

- 正面: 功能更强大,扩展性更好
- 负面: 运维经验需积累
- 风险: 部分云服务兼容性需验证

3. 技术方案文档

3.1 技术方案模板

# [项目名] 技术方案

## 1. 背景与目标

### 1.1 业务背景

### 1.2 技术目标

### 1.3 非目标(明确排除的范围)

## 2. 现状分析

### 2.1 当前架构

### 2.2 存在的问题

## 3. 方案设计

### 3.1 总体架构

### 3.2 核心流程

### 3.3 数据模型

### 3.4 API设计

### 3.5 安全设计

## 4. 方案对比

| 维度   | 方案A | 方案B |
| :----- | :---- | :---- |
| 性能   |       |       |
| 成本   |       |       |
| 复杂度 |       |       |

## 5. 容量与性能

### 5.1 容量估算

### 5.2 性能目标

### 5.3 压测方案

## 6. 风险与应对

## 7. 实施计划

## 8. 监控与告警

4. 文档最佳实践

实践说明
与代码同仓库文档和代码一起维护
自动化生成API文档自动生成
版本控制文档变更可追溯
定期审查季度审查文档时效性
简洁有效只写有价值的文档