跳转至

SDD 教学

这一部分讲的是:这个 Git 复现项目为什么不能只靠“写代码 + 手动跑一下”,而必须采用规格驱动、测试驱动和安全边界同步推进的做法。

对很多初学者来说,SDD 听起来容易很虚。但一旦把它放进 Git 复现这种项目里,意义就会变得非常具体。因为这个项目不是普通页面应用,它会:

  • 处理二进制格式;
  • 维护提交图;
  • 改写 refs;
  • 重写工作区;
  • 删除文件;
  • 做 merge;
  • 打包和传输对象。

这种项目只要边界没设计好,bug 的后果就不只是“某个按钮显示错了”,而可能是仓库损坏或文件丢失。

这部分要回答什么问题

这一组页面主要回答三个问题:

  1. 一个很大的 PRD 如何拆成能执行的任务?
  2. 测试和安全规则如何反过来影响实现方式?
  3. 为什么在这种项目里,mock 很多时候不但帮不上忙,反而会掩盖核心问题?

在这个项目里,SDD 不是什么

它不是为了把文档写漂亮。
也不是为了让项目看起来“更正规”。

在这个项目里,SDD 是为了保证下面这条链不断裂:

PRD -> 任务拆分 -> 模块设计 -> 代码实现 -> 自动化测试 -> 危险边界验证

只要这条链条断开,项目就会退化成“命令越来越多,但没人能确定哪里真的安全、哪里真的兼容”。

你会在这一部分学到什么

你会看到:

  • 什么是 SDD;
  • 巨型 PRD 为什么一定要拆;
  • 任务为什么要按依赖顺序安排;
  • 危险指令为什么必须先设计保护边界;
  • 为什么核心行为测试不能依赖 mock;
  • 为什么 SOLID、DRY、原子写入、锁文件、中文注释要求都和项目可维护性直接相关。

推荐阅读顺序

建议按这个顺序看:

  1. What Is SDD
  2. PRD to Tasks
  3. Testing Strategy
  4. Dangerous Commands
  5. No Mock Policy

这个顺序是从理念到任务,再到验证和安全。

它和其他部分的关系

  • Git Teaching 告诉你要复现的对象是什么;
  • Build Git Teaching 告诉你这些能力如何落成代码;
  • SDD Teaching 告诉你怎样让这套代码在复杂度上升时不失控。

如果你既想学 Git,也想学怎么把一个复杂系统项目做成“可持续演进”的状态,这一部分就是中间桥梁。