1.2 一句话总结三种方法论
上一节我们看了老王、小李、小张三种做法。现在用最简短的方式定义每一种。
三个一句话定义
TDD(Test-Driven Development)测试驱动开发
"先写失败测试,再写代码让它通过,然后重构。"
谁提出的:Kent Beck,2002 年
核心循环:Red(写失败测试)→ Green(让测试通过)→ Refactor(重构)
一句话哲学:永远不要在没有失败测试的情况下写生产代码
核心循环:Red(写失败测试)→ Green(让测试通过)→ Refactor(重构)
一句话哲学:永远不要在没有失败测试的情况下写生产代码
SDD(Specification-Driven Development)规格驱动开发
"先写精确的规格文档,再根据规格生成代码和测试。"
起源:从形式化方法(1970s)演化而来,API-first 开发让它在 2025 年重新流行
核心流程:Specify(定义规格)→ Plan(规划)→ Implement(实现)→ Verify(验证)
一句话哲学:规格是唯一真实来源,所有代码必须符合规格
核心流程:Specify(定义规格)→ Plan(规划)→ Implement(实现)→ Verify(验证)
一句话哲学:规格是唯一真实来源,所有代码必须符合规格
Vibe Coding 氛围编程
"用自然语言描述需求,AI 生成代码,你甚至不需要读代码。"
谁提出的:Andrej Karpathy(OpenAI 联合创始人),2025 年 2 月
核心流程:Prompt(描述需求)→ Generate(AI 生成)→ Iterate(迭代修复)
一句话哲学:完全顺从 AI 的"氛围",拥抱指数增长,忘记代码的存在
核心流程:Prompt(描述需求)→ Generate(AI 生成)→ Iterate(迭代修复)
一句话哲学:完全顺从 AI 的"氛围",拥抱指数增长,忘记代码的存在
一个类比:三种盖房子的方式
想象你要盖一栋房子:
TDD = 质检员盖房
每砌一块砖之前,先用仪器检测位置对不对。砖没放好,立刻重来。
慢,但质量极高。每块砖都经过验证。
慢,但质量极高。每块砖都经过验证。
SDD = 建筑师盖房
先画好完整蓝图(规格),施工队按照蓝图盖。蓝图是唯一的参考。
前期花时间画蓝图,但施工高效且不会跑偏。
前期花时间画蓝图,但施工高效且不会跑偏。
Vibe Coding = 搭积木
凭感觉搭,搭错了拆掉重来。快速试出几种造型,看哪个好看就用哪个。
极快,但可能不太结实。适合验证想法。
极快,但可能不太结实。适合验证想法。
核心数据一览
| 维度 | TDD | SDD | Vibe Coding |
|---|---|---|---|
| 提出时间 | 2002 年 | 2010s 演化,2025 重新流行 | 2025 年 2 月 |
| 核心产出物 | 测试用例 | 规格文档 | 自然语言提示词 |
| 开发速度 | 中等(前期慢,长期快) | 前期慢,并行开发后快 | 极快 |
| 代码质量 | 高(有测试保障) | 高(有规格约束) | 不确定 |
| 学习曲线 | 中等 | 较高 | 极低 |
| 适合场景 | 核心业务逻辑 | API 开发、微服务 | 原型、MVP |
📌 本节核心要点
| 概念 | 要点 |
|---|---|
| TDD | 测试先行,Red-Green-Refactor 循环,2002 年 Kent Beck 提出 |
| SDD | 规格先行,精确契约驱动开发,AI 时代焕发新生 |
| Vibe Coding | 自然语言先行,AI 生成代码,2025 年 Karpathy 提出 |
| 类比 | TDD = 质检员、SDD = 建筑师、Vibe Coding = 搭积木 |
知识检查
问题 1:TDD 的核心循环是什么?三个步骤分别做什么?
查看答案
Red-Green-Refactor 循环:
- Red(红):写一个失败的测试,证明测试确实在验证某些东西
- Green(绿):写最少的代码让测试通过
- Refactor(重构):在不改变行为的前提下改善代码设计
问题 2:Vibe Coding 是谁在哪一年提出的?核心定义是什么?
查看答案
- 提出者:Andrej Karpathy(OpenAI 联合创始人)
- 时间:2025 年 2 月
- 核心定义:用自然语言描述需求,AI 生成代码,你甚至不需要仔细审查代码
问题 3:用"盖房子"类比,SDD 对应什么角色?为什么?
查看答案
SDD 对应建筑师。因为 SDD 的核心是"先画蓝图再施工"——先写精确的规格文档(蓝图),再让团队(人或 AI)按规格实现。前期花时间画蓝图,但施工阶段高效且不会跑偏。
下一节预告
了解了三种方法论的基本定义,但它们背后代表了完全不同的"人类角色"。下一节我们看看:你到底是工匠、建筑师还是画家?