告别 Vibe Coding!SDD 规范驱动开发实战:从文档到代码的 AI 开发新范式

本文基于实际项目 md-wx-chrome-extensions(浏览器翻译插件),完整演示 SDD(Spec-Driven Development,规范驱动开发)的落地流程。


一、Vibe Coding 的痛:第一天起飞,第二天返工

Vibe Coding(氛围编程)很上头------打开 Claude Code、Cursor 这些 AI Agent,对着聊天窗口疯狂下任务:

"帮我做一个用户认证系统"

AI 噼里啪啦输出 2000 行代码,看上去跑得起来,心里美滋滋。

然后噩梦开始了:

  • 用的什么框架?NestJS?Express?Python?Java?------AI 猜了一个
  • 数据库用什么?------AI 又猜了一个
  • 第一天效率拉满,第二天发现要返工
  • 第一个月陷入自我怀疑:AI 能力明明超强,为什么翻车了?

答案很简单:我们给大模型的上下文不够。

聊天窗口一关,会话历史没了。AI 没有持久化的记忆,只能靠猜。每一轮失败都在消耗时间和词元。


二、SDD:规范驱动开发------先写文档,再写代码

Stephen Covey 在《高效人士的 7 个习惯》中提出:以终为始。

优秀老板做事情会经历两次创造:

  1. 第一次创造(心智创造):在大脑中设计好,用文档落地
  2. 第二次创造(物理创造):根据规范,驱动 AI 写代码

不画蓝图就不盖房,不写商业计划书就不创业。

SDD(Spec-Driven Development) 就是把这个理念搬到 AI 开发中:

复制代码
做什么 → 为什么做 → 怎么做 → 如何一步步做

当代码生成成本越来越低,真正稀缺的是清晰、可执行、可验证的意图。


三、SDD 包含哪些文档?

文档 职责 角色
proposal.md 需求定义:系统是什么样,满足什么需求 产品经理
design.md 技术架构:怎么实现,技术选型 架构师
task.md 任务拆解:先干什么,再干什么,什么可以并行 项目经理

三份规范完成第一次创造 (工作内容),代码是第二次创造(Agent 执行)。

Vibe Coding 的问题在于:跳过了第一次创造,直接进入第二次创造。

聊天窗口诱惑我们直接开干,SDD 坚持------所有伟大事物都要经历两次创造。


四、实战:md-wx-chrome-extensions 浏览器插件

4.1 项目是什么

一个浏览器插件,核心功能:

  • 一键提取英文网页的核心内容
  • 调用 AI 模型翻译成中文
  • Markdown 格式呈现翻译结果
  • 一键复制,方便粘贴到公众号

目标用户:大网红、公众号作者(md-wx = markdown + 微信)


4.2 第一步:需求分析(proposal.md)

清晰的定义我们要做什么。

不是直接开写代码,而是先花时间编写并验证需求。

核心功能拆解:

  1. 网页内容提取------难点:如何只要正文,去掉广告、导航栏?
  2. AI 翻译------模型可配置(DeepSeek、Qwen、OpenAI 兼容接口)
  3. Markdown 渲染------使用 npm marked(通用方案)
  4. 流式输出------翻译过程实时显示
  5. 一键复制------复制到剪贴板

明确不做什么:

  • 不是新建项目,需要先阅读已有代码
  • 不做全文缓存(成本太高)
  • 不做多语言互译(只做英→中)

文档的好处:可共享、可记录。Vibe Coding 一关窗口可能就没了。


4.3 第二步:技术框架设计(design.md)

直接关系到项目的成败。一个正确的技术选型,能让后续开发事半功倍。

技术难点攻关:

难点 解决方案
网页只要内容? 上网搜方案,LLM 工具和分析能力很强
AI 模型切换? 强调 OpenAI 兼容方式,切换 Qwen 等无缝
微信格式? 生成 wx markdown 格式

技术栈选型:

  • Chrome Extension Manifest V3
  • 前端:React + TypeScript
  • AI 调用:OpenAI 兼容接口(DeepSeek / Qwen 可切换)
  • Markdown 渲染:marked.js
  • 流式输出:SSE(Server-Sent Events)

4.4 第三步:任务拆解(task.md)

markdown 复制代码
1. 项目初始化 + Git 仓库
2. Chrome Extension 基础框架
3. 网页内容提取模块
4. AI 翻译模块(流式输出)
5. Markdown 渲染 + 复制功能
6. 集成测试 + 发布

什么可以并行?------网页提取和 AI 翻译可以并行开发。


五、Git 版本控制:Vibe Coding 的安全网

AI 生成的代码,必须即时版本控制。

出现幻觉怎么办?

情况一:没到暂存区(没 git add)

bash 复制代码
git restore .

直接丢弃这次修改。

情况二:到了暂存区,没提交

bash 复制代码
git restore --staged .   # 先移出暂存区
git restore .            # 再丢弃修改

情况三:已经提交了

bash 复制代码
git reset --hard HEAD^

彻底回退到上一次提交。

养成习惯:每完成一个功能 → git add → git commit。

Git 是 Vibe Coding 的安全网,崩了随时回退。


六、管理 AI 会话:上下文是关键

每次开发新功能,开启新的对话,新的上下文。

为什么?

  • 旧会话的上下文太杂,AI 会混淆
  • 新会话 + 完整的 SDD 文档 = 精准的输出

SDD 文档就是 AI 的持久化记忆,比聊天窗口靠谱得多。


七、SDD 的核心理念

对比项 Vibe Coding SDD
工作方式 埋头就干 先设计,后执行
上下文 聊天窗口(易丢失) 文档(持久化)
可追溯性 差(窗口一关就没了) 强(文档可共享、可记录)
AI 输出质量 靠猜(上下文不足) 精准(文档驱动)
返工成本 高 低

SDD 不是银弹,但它是目前 AI 开发最有效的范式。


八、总结

  1. Vibe Coding 的问题:上下文缺失 → AI 猜 → 幻觉 → 返工
  2. SDD 的解决方案:文档先行,两次创造
  3. 三份核心文档 :proposal.md(做什么)→ design.md(怎么做)→ task.md(分步做)
  4. Git 是安全网:每步都 commit,崩了随时回退
  5. 上下文管理:新功能开新会话,SDD 文档是持久化记忆

当代码生成成本越来越低,真正稀缺的是清晰、可执行、可验证的意图。

SDD 不是增加工作量,而是把工作做对。AI 时代的工程师价值,不在于调了多少 API,而在于能用工程化思维把 LLM 的能力稳定地产品化。


相关项目 :md-wx-chrome-extensions

技术栈:Chrome Extension · React · TypeScript · DeepSeek API · OpenAI 兼容接口 · marked.js


💬 你在 AI 开发中踩过哪些坑?欢迎评论区交流!

相关推荐
江华森3 分钟前
Web漏洞与中间件框架漏洞实战详解
面试
美味蛋炒饭.3 小时前
java八股面试(3)
java·开发语言·面试
考研保研资料分享3 小时前
2022食品跨申农业工程保研:中农、海大与华工考核复盘
面试
怕浪猫3 小时前
腾讯又交作业了,开源版 WorkBuddy 太夯了!这回是只粉色小章鱼Octop!
javascript·面试·agent
鸥梨菌Honevid3 小时前
UVM 面试高频:uvm_test_top 与 uvm_config_db 路径机制全解析
数据库·面试·职场和发展
美味蛋炒饭.5 小时前
Java八股面试(4)
java·开发语言·面试
Interview Aid1125 小时前
Capital One Interview 完整指南:招聘流程、OA 真题与技术面试准备
面试·职场和发展
Rain的Java大神之路6 小时前
10 万人抢 2000 个座位,电影票选座系统怎么防超卖?一文讲透大厂高频场景题
java·后端·面试
考研保研资料分享6 小时前
双非英语跨保国际中文教育:北师大与川大考核复盘(2025/2022)
面试
考研保研资料分享7 小时前
车辆与机械保研经验合辑:西交、浙大预推免与专业笔试面试复盘
面试·职场和发展