跳转至

什么是 SDD

SDD 在这个项目里,不是装饰性的缩写,而是一种实际工作方法。
这里的 SDD 指的是:规格、设计、开发、测试同步推进

为什么这个项目必须用 SDD

如果你做的是普通小脚本,很多时候“先写出来再说”问题不大。
但 Git 复现项目不一样,它会:

  • 写对象库;
  • 改 index;
  • 改 refs;
  • 重写工作区;
  • 删除文件;
  • 做 merge;
  • 传输 pack;
  • 改远端状态。

这些操作一旦边界不清楚,问题就不是“功能有点不优雅”,而可能是:

  • 仓库损坏;
  • 工作区被错误覆盖;
  • 用户文件误删;
  • 状态不一致。

SDD 的核心思想

在这个项目里,一个功能不应该只靠“代码写出来了”来宣布完成。
它至少要同时回答:

  • 这个功能规格是什么?
  • 用什么设计实现?
  • 会改哪些仓库状态?
  • 失败时如何处理?
  • 如何测试它?
  • 是否有危险边界?

这就是 SDD 真正的价值:
让复杂系统项目里的隐含假设尽量变成显式规则。

和单纯写文档的区别

SDD 不是“先写点文档让项目看起来专业”。
如果文档和代码、测试、任务没有联系,那只是文档堆积。

真正的 SDD 要求:

  • PRD 能映射到任务;
  • 任务能映射到模块;
  • 模块能映射到测试;
  • 测试能反过来验证规格;
  • 危险操作在设计阶段就有保护边界。

这条链如果断了,SDD 就只是口号。