什么是 SDD¶
SDD 在这个项目里,不是装饰性的缩写,而是一种实际工作方法。
这里的 SDD 指的是:规格、设计、开发、测试同步推进。
为什么这个项目必须用 SDD¶
如果你做的是普通小脚本,很多时候“先写出来再说”问题不大。
但 Git 复现项目不一样,它会:
- 写对象库;
- 改 index;
- 改 refs;
- 重写工作区;
- 删除文件;
- 做 merge;
- 传输 pack;
- 改远端状态。
这些操作一旦边界不清楚,问题就不是“功能有点不优雅”,而可能是:
- 仓库损坏;
- 工作区被错误覆盖;
- 用户文件误删;
- 状态不一致。
SDD 的核心思想¶
在这个项目里,一个功能不应该只靠“代码写出来了”来宣布完成。
它至少要同时回答:
- 这个功能规格是什么?
- 用什么设计实现?
- 会改哪些仓库状态?
- 失败时如何处理?
- 如何测试它?
- 是否有危险边界?
这就是 SDD 真正的价值:
让复杂系统项目里的隐含假设尽量变成显式规则。
和单纯写文档的区别¶
SDD 不是“先写点文档让项目看起来专业”。
如果文档和代码、测试、任务没有联系,那只是文档堆积。
真正的 SDD 要求:
- PRD 能映射到任务;
- 任务能映射到模块;
- 模块能映射到测试;
- 测试能反过来验证规格;
- 危险操作在设计阶段就有保护边界。
这条链如果断了,SDD 就只是口号。