52 lines
2.5 KiB
Markdown
52 lines
2.5 KiB
Markdown
# 架构决策记录(ADR)
|
||
|
||
> 一份文件记一个决定。设计文档写"怎么落地",ADR 写"为什么这么定、放弃了什么"。
|
||
|
||
## 目录约定
|
||
|
||
| 项 | 约定 |
|
||
| --- | --- |
|
||
| 位置 | `docs/adr/` |
|
||
| 命名 | `NNNN-英文短标题.md`,四位递增,从 0001 开始 |
|
||
| 粒度 | 一份文件只记一个决定;相关联的决定分文件写,互相引用 |
|
||
| 语言 | 文件名用英文短横线小写,正文用中文 |
|
||
| 评审 | 走 MR:有 diff、有讨论、有提交历史 |
|
||
|
||
## 不可更改原则
|
||
|
||
ADR 写完不再修改。要改结论就**新写一份**,并在两份里互相标注取代关系:
|
||
|
||
- 新 ADR 的 `状态` 写 `已接受(取代 ADR-0002)`
|
||
- 旧 ADR 的 `状态` 改为 `已取代(被 ADR-0007 取代)`
|
||
|
||
这样任何时候都能回答"当初为什么这么定、后来为什么改"。
|
||
|
||
## 状态取值
|
||
|
||
| 状态 | 含义 |
|
||
| --- | --- |
|
||
| 提议 | 已写出,等待决策人签字 |
|
||
| 已接受 | 决策人签字,作为当前依据 |
|
||
| 已取代 | 被更新的 ADR 覆盖 |
|
||
| 已废弃 | 决定不再适用,且未被替代 |
|
||
|
||
## 谁写、谁定
|
||
|
||
任何人可以提议(状态 `提议`)。决策人在文件里签字后状态改为 `已接受`。签字栏留空表示还没定。
|
||
|
||
## 索引
|
||
|
||
| 编号 | 标题 | 状态 | 来源 |
|
||
| --- | --- | --- | --- |
|
||
| [0001](./0001-tech-stack-and-repo.md) | 技术栈与仓库形态 | 已接受 | 任务表 A0.1、A0.2 |
|
||
| [0002](./0002-engine-provider-deployment.md) | 引擎与 Provider 的部署形态 | 已接受 | 任务表 A0.3(决策 D1) |
|
||
| [0003](./0003-data-scope-and-authority.md) | 数据作用域与权威数据源 | 已接受 | 任务表 A0.4(决策 D2) |
|
||
| [0004](./0004-desktop-and-local-capabilities.md) | 桌面端与本地能力边界 | 已接受 | 任务表 A0.5(决策 D4) |
|
||
| [0005](./0005-cutover-strategy.md) | 直接切换,不并行、不迁移 | 已接受 | 任务表 A0.9(决策 D7) |
|
||
| [0006](./0006-engine-as-subprocess.md) | 引擎以长驻子进程运行 | 已接受 | 任务表 A3(决策 D10) |
|
||
| [0007](./0007-storage-and-consistency.md) | 数据存储选型与双形态一致规则 | 已接受 | 任务表 A0(决策 D11) |
|
||
| [0008](./0008-database-ownership-and-topology.md) | 数据库归属与实例拓扑 | 已接受 | 任务表 A0(决策 D13) |
|
||
| [0009](./0009-delivery-shape.md) | 交付形态:纯平台包 + APS 单独部署 | 已接受 | 任务表 A0(决策 D14) |
|
||
|
||
编号在写之前先在本表登记,避免多人并行时撞号。
|