当代码生成成本趋近于零,真正稀缺的是什么? 是清晰、可执行、可验证的意图。
📖 目录
- [一、Vibe Coding 的狂欢与幻灭](#一、Vibe Coding 的狂欢与幻灭 "#%E4%B8%80vibe-coding-%E7%9A%84%E7%8B%82%E6%AC%A2%E4%B8%8E%E5%B9%BB%E7%81%AD")
- [二、SDD 是什么?](#二、SDD 是什么? "#%E4%BA%8Csdd-%E6%98%AF%E4%BB%80%E4%B9%88")
- [三、两次创造:SDD 的核心哲学](#三、两次创造:SDD 的核心哲学 "#%E4%B8%89%E4%B8%A4%E6%AC%A1%E5%88%9B%E9%80%A0sdd-%E7%9A%84%E6%A0%B8%E5%BF%83%E5%93%B2%E5%AD%A6")
- [四、SDD 文档体系](#四、SDD 文档体系 "#%E5%9B%9Bsdd-%E6%96%87%E6%A1%A3%E4%BD%93%E7%B3%BB")
- [五、实战:md-wx-chrome-extensions 项目](#五、实战:md-wx-chrome-extensions 项目 "#%E4%BA%94%E5%AE%9E%E6%88%98md-wx-chrome-extensions-%E9%A1%B9%E7%9B%AE")
- [六、SDD vs Vibe Coding 对比](#六、SDD vs Vibe Coding 对比 "#%E5%85%ADsdd-vs-vibe-coding-%E5%AF%B9%E6%AF%94")
- 七、总结
一、Vibe Coding 的狂欢与幻灭 🎭
🎉 狂欢期:效率飙升的幻觉
还记得第一次使用 AI Coding Agent 的兴奋吗?
arduino
"帮我做一个用户认证系统"
2000 行代码瞬间生成,项目跑起来了,感觉自己发现了新大陆。
Claude Code、Codex、DeepSeek、Cursor、Trae、Copilot... 这些工具让我们沉浸在「氛围编程」(Vibe Coding) 的快感中:
- 🎯 对着交互面板疯狂下任务
- ⚡ 看着代码飞速生成
- 🎊 幻想着 10 倍效率提升
😰 幻灭期:返工的噩梦
第一天 :效率飙升,沾沾自喜 第二周 :开始返工,AI 在「猜」你的意图 第一个月:陷入自我怀疑...
🔍 问题出在哪?
┌─────────────────────────────────────────────────────────────┐
│ Vibe Coding 的致命缺陷 │
├─────────────────────────────────────────────────────────────┤
│ ❌ 上下文缺失 → AI 不知道你真正想要什么 │
│ ❌ 会话历史丢失 → 每次对话都是从零开始 │
│ ❌ AI 幻觉 → 生成看似正确实则错误的代码 │
│ ❌ 返工成本高 → 每一轮失败都在消耗时间和 Token │
└─────────────────────────────────────────────────────────────┘
关键洞察:AI 能力超强,但我们给大模型的上下文不够!
二、SDD 是什么? 🎯
📝 定义
SDD(Spec-Driven Development) ------规范驱动开发
ini
Spec = 规范文档
Driven = 驱动
Development = 开发新范式
核心理念 :文档即是代码,先撰写文档,再编写代码。
🏗️ 借鉴的智慧
SDD 借鉴了两个成熟行业的经验:
| 行业 | 原则 | 启示 |
|---|---|---|
| 🏠 建造业 | 不画蓝图就不盖房 | 先设计,后施工 |
| 💼 商业 | 不写商业计划就不创业 | 先规划,后执行 |
💡 一句话总结
每一个声称 10 倍效率的工具,如果没有规范驱动,最终都会变成 10 倍的返工。
三、两次创造:SDD 的核心哲学 🧠
📚 理论来源
史蒂芬·柯维《高效人士的七个习惯》中的 「以终为始」:
优秀的人做任何事情都会经历 两次创造。
🔄 两次创造模型
┌─────────────────────────────────────────────────────────────────┐
│ │
│ 第一次创造:心智创造(文档) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🧠 在大脑中设计一遍 │ │
│ │ 📄 用各种文档落地 │ │
│ │ 🎯 明确:做什么、为什么做、怎么做、如何一步步做 │ │
│ └───────────────────────────────────────────────────────────┘ │
│ ↓ │
│ 第二次创造:物理创造(代码) │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ 🤖 根据规范驱动 AI 写代码 │ │
│ │ ✅ 代码可验收、可追溯 │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
⚠️ Vibe Coding 的问题
Vibe Coding 跳过了第一次创造,直接进入第二次创造。
聊天窗口的诱惑让我们急于动手,结果:
- ❌ 缺乏全局视角
- ❌ 需求不清晰
- ❌ 架构不合理
- ❌ 返工无穷尽
✅ SDD 的坚持
SDD 坚持所有事物都要经过两次创造,规范是必选项,是主要工作内容。
四、SDD 文档体系 📚
📋 核心文档(按需加载)
SDD 包含三份核心规范文档:
┌──────────────────────────────────────────────────────────────┐
│ SDD 文档体系 │
├──────────────────────────────────────────────────────────────┤
│ │
│ 📄 proposal.md → 需求文档(产品经理视角) │
│ • 系统应该是什么样? │
│ • 满足什么需求? │
│ • MVP 最小可行性单元是什么? │
│ │
│ 📐 design.md → 技术架构设计 │
│ • 技术选型 │
│ • 架构方案 │
│ • 技术难点解决方案 │
│ │
│ ✅ task.md → 任务列表 │
│ • 先干什么? │
│ • 再干什么? │
│ • 什么可以并行干? │
│ │
└──────────────────────────────────────────────────────────────┘
🔄 文档驱动流程
需求分析 → 架构设计 → 任务拆分 → AI 编码 → 验收迭代
📄 📐 ✅ 🤖 🔍
三份规范完成第一次创造(工作内容),代码是第二次创造(Agent 执行)。
五、实战:md-wx-chrome-extensions 项目 🛠️
📋 项目简介
一个浏览器插件,核心功能:
英文网页 → 一键提取 → AI 翻译 → Markdown 呈现 → 一键复制
📄 proposal.md 示例
markdown
# 需求分析
## 是什么
浏览器插件,一键提取英文网页核心内容,调用 AI 模型翻译,
将翻译结果以 Markdown 格式呈现,支持一键复制。
## MVP 最小可行性单元
1. 提取网页主要内容
2. 调用 AI 模型翻译
3. Markdown 格式输出
4. 一键复制功能
## 不做什么
- 不做全文翻译
- 不做多语言支持(首版仅中英)
- 不做复杂排版
## 技术难点
- 网页主要内容提取(需要调研)
- AI 模型可配置(DeepSeek、Qwen 等)
- 微信 Markdown 格式兼容
📐 design.md 示例
markdown
# 技术架构设计
## 技术选型
- 前端:Chrome Extension API
- AI 模型:OpenAI 兼容方式(支持切换)
- Markdown 渲染:marked.js
- 流式输出:SSE
## 架构方案
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Content │ ──→ │ Background │ ──→ │ AI Model │
│ Script │ │ Service │ │ (DeepSeek) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
↓ ↓ ↓
提取网页内容 处理翻译请求 返回翻译结果
✅ task.md 示例
markdown
# 任务列表
## 第一阶段:基础框架
- [ ] 创建 Chrome Extension 项目结构
- [ ] 实现 Content Script 提取网页内容
- [ ] 实现 Background Service Worker
## 第二阶段:AI 集成
- [ ] 集成 OpenAI 兼容 API
- [ ] 实现流式输出
- [ ] 支持多模型切换
## 第三阶段:UI 优化
- [ ] 设计 Popup 界面
- [ ] 实现 Markdown 渲染
- [ ] 添加一键复制功能
🔧 Git 版本控制
SDD 强调版本控制的重要性:
bash
# AI 生成的代码,即时版本控制
git add .
git commit -m "feat: 实现基础翻译功能"
# 出现幻觉?不同阶段的回退策略
# 1️⃣ 未到暂存区 → 直接丢弃
git restore .
# 2️⃣ 到了暂存区但未提交 → 先移出再丢弃
git restore --staged .
git restore .
# 3️⃣ 已提交 → 回退到上一个版本
git reset --hard HEAD^
六、SDD vs Vibe Coding 对比 ⚖️
┌─────────────────┬─────────────────────┬─────────────────────┐
│ 维度 │ Vibe Coding │ SDD │
├─────────────────┼─────────────────────┼─────────────────────┤
│ 🎯 目标清晰度 │ 模糊,边做边想 │ 清晰,先想后做 │
│ 📄 文档 │ 无或极少 │ 完整的规范文档 │
│ 🤖 AI 上下文 │ 会话丢失,上下文缺失 │ 文档持久化,随时可用 │
│ 🔄 迭代成本 │ 高(返工多) │ 低(规范明确) │
│ 📈 效率曲线 │ 先快后慢(返工) │ 先慢后快(稳定) │
│ 🎭 可控性 │ 低(AI 猜) │ 高(规范驱动) │
│ 🔍 可追溯性 │ 差(聊天记录丢失) │ 好(文档版本控制) │
└─────────────────┴─────────────────────┴─────────────────────┘
📊 效率曲线对比
markdown
效率
↑
│ SDD 📈
│ ╱‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
│ ╱
│ ╱
│╱ Vibe Coding 📉
│‾‾‾‾╲
│ ╲_______________
└──────────────────────→ 时间
Vibe Coding: 前期快,后期返工多
SDD: 前期慢,后期效率高
七、总结 🎯
💎 核心要点
-
SDD 是 AI 时代的新工作内容
- 当代码生成成本趋近于零,清晰的意图才是稀缺资源
-
两次创造原则
- 第一次:心智创造(文档)------ 设计好项目
- 第二次:物理创造(代码)------ 驱动 AI 执行
-
文档是 AI 的最佳上下文
- 持久化、可共享、可版本控制
- 比聊天记录更可靠
-
SDD 框架:Spec-kit
- proposal.md → 需求
- design.md → 架构
- task.md → 任务
🚀 行动建议
┌─────────────────────────────────────────────────────────────┐
│ 立即开始 SDD │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1️⃣ 停下来,不要急于动手 │
│ 2️⃣ 先写 proposal.md,明确需求 │
│ 3️⃣ 再写 design.md,设计架构 │
│ 4️⃣ 最后写 task.md,拆分任务 │
│ 5️⃣ 用规范驱动 AI 编码 │
│ 6️⃣ 即时版本控制,可追溯可回退 │
│ │
└─────────────────────────────────────────────────────────────┘
🌟 金句
「不画蓝图就不盖房,不写商业计划就不创业,不写规范就不写代码。」
------ SDD 开发哲学
📚 延伸阅读
- 《高效人士的七个习惯》------ 史蒂芬·柯维
- SDD 框架:Spec-kit
- AI Coding Agent 最佳实践
作者 :AI 开发范式研究 日期 :2026 年 9 月 版本:v1.0
💡 记住:在 AI 时代,工程师的工作不是写代码,而是写规范。代码生成交给 AI,清晰的意图才是你的核心竞争力。