设计文档规范
00:00
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文档自动生成 |
| 版本控制 | 文档变更可追溯 |
| 定期审查 | 季度审查文档时效性 |
| 简洁有效 | 只写有价值的文档 |