🚀 SDD:告别「氛围编程」,迎接规范驱动开发新时代

当代码生成成本趋近于零,真正稀缺的是什么? 是清晰、可执行、可验证的意图。


📖 目录

  • [一、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:         前期慢,后期效率高

七、总结 🎯

💎 核心要点

  1. SDD 是 AI 时代的新工作内容

    • 当代码生成成本趋近于零,清晰的意图才是稀缺资源
  2. 两次创造原则

    • 第一次:心智创造(文档)------ 设计好项目
    • 第二次:物理创造(代码)------ 驱动 AI 执行
  3. 文档是 AI 的最佳上下文

    • 持久化、可共享、可版本控制
    • 比聊天记录更可靠
  4. SDD 框架:Spec-kit

🚀 行动建议

复制代码
┌─────────────────────────────────────────────────────────────┐
│                    立即开始 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,清晰的意图才是你的核心竞争力。

相关推荐
天衍四九-2 小时前
Agent Skills从入门到工程化(十六):面试中如何讲清楚 Agent Skills?
大数据·数据库·人工智能·python·chatgpt·面试
秋天的一阵风2 小时前
🤔首屏Banner压到40KB,LCP还是4秒?原来一直搞错了最大渲染元素
前端·人工智能·面试
秋天的一阵风2 小时前
💬面试官:Markdown 流式解析如何避免标签截断?「直接重新让 marked 全部渲染」行不行?
前端·面试·ai编程
黄敬峰13 小时前
一文搞懂 LLM 流式输出与 SSE
面试
Rain的Java大神之路14 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
职场的momo15 小时前
字节生活服务海量内推,挑战亿级订单与AI交易中台
人工智能·程序人生·面试·职场和发展·跳槽·生活·业界资讯
黄敬峰20 小时前
一文搞懂 AI 聊天应用的 Memory 模块:Milvus 向量数据库实战
面试
CoderYanger21 小时前
前端基础——JavaScript(基础语法)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
~木雨1 天前
Java 线程池七问七答:参数、执行流程、拒绝策略到 ThreadLocal 内存泄漏,面试必背
java·面试·线程池·threadlocal·threadpool·executor