吴恩达谈“Spec 驱动开发”:AI 编程时代,真正值钱的不是会写代码,而是会把需求写清楚

你可能也有过这种挫败感:

第一次让 AI 写个小工具,它看起来很聪明;第二次你说“再改一下”,它开始东一榔头西一棒子;第三次你补一句需求,前面能用的部分又被它改坏了。

很多人会把问题归结为一句话:模型还不够强。

但最近吴恩达推出的一门新课,恰恰把焦点拉回了另一个更关键的问题:不是 AI 不会写,而是你没把要什么说清楚。 这门课讨论的核心,是一种老概念在新环境下的重新爆发——Spec-driven development,也就是“规格驱动开发”。

这篇文章不准备停留在“课程新闻搬运”。更重要的是,我们想把这件事翻译成普通用户能立刻上手的方法:在 AI 编程时代,谁更会写规格,谁就更容易得到可用结果。

AI 正在把“写代码”这件事,逐渐变成“先定义清楚问题”。

---

这门新课为什么值得关注:不是新术语,却在 AI 时代突然变重要了

“Spec 驱动开发”并不是今天才出现的概念。传统软件开发里,需求说明、接口定义、测试标准,本来就是项目成功的底盘。只是过去这些东西往往属于产品经理、架构师和工程团队的分工地带,普通用户很少直接碰到。

但 AI 编程出现后,情况变了。

以前你想做一个小工具,必须自己写代码,或者找程序员;现在你只需要打开 Claude Sonnet 4.6、Claude Opus 4.6、Gemini 3.1 Pro,或者配合 Cursor 这类工具,就能让 AI 直接产出页面、脚本、接口甚至数据库结构。开发门槛被拉低了,需求表达能力却被放大了。

吴恩达这门新课之所以值得关注,不是因为它发明了什么新词,而是因为它点中了当下 AI 编程最普遍、也最容易被忽视的痛点:

  • 不是所有失败都来自模型能力不足
  • 很多“效果不稳定”,本质上是需求输入不稳定
  • 不是 prompt 要写得更花,而是规格要写得更清楚

从趋势数据看,这件事也不是小圈子的自嗨。

根据 Stack Overflow 2024 Developer Survey超过七成开发者已经在使用或计划使用 AI 工具参与开发工作。而 GitHub 此前关于 AI 编程助手的研究也指出,AI 能显著提升编码效率,但前提是任务边界清晰、上下文完整。说白了,AI 越融入开发流程,“需求描述质量”就越像新的生产力杠杆。

所以,这门课真正值得普通人关注的,不是“又多了一门课程”,而是它释放了一个强烈信号:

AI 编程的竞争,正在从“谁会问问题”,升级到“谁会写规格”。

---

什么是“Spec 驱动开发”:把模糊想法变成可执行说明

很多人一听 spec,脑子里会浮现一本文档、几十页流程图,瞬间就想关掉页面。

其实没那么复杂。

在 AI 编程语境里,spec 可以简单理解为:一份足够清楚、足够具体、让 AI 可以照着做的需求说明。

它通常至少包含这些元素:

| 要素 | 作用 | | 目标 | 你到底要做什么 | | 功能 | 必须具备哪些能力 | | 约束 | 用什么技术、不能做什么 | | 边界 | 什么场景要处理,什么场景不用处理 | | 示例 | 输入输出长什么样 | | 验收标准 | 怎样算“做对了” |

如果你对 AI 说:

“帮我做一个记账网页。”

这不是 spec,这是愿望。

如果你对 AI 说:

“做一个给个人用户使用的记账网页,包含收入/支出录入、按月份筛选、按分类统计、CSV 导出;采用本地浏览器存储;页面分为录入区、明细区、统计区;移动端优先;当金额为空或不是数字时提示错误;验收标准是新增、删除、筛选、导出都能在本地完成,不依赖后端。”

这才更接近 spec。

普通 prompt vs Spec 化需求说明

下面这个对比,最能说明问题:

#### 错误示范

帮我写一个漂亮的记账网页,要简单好用。

#### 优化后

请开发一个个人记账网页,面向非财务专业用户。

目标:

  • 让用户在 30 秒内完成一笔收入或支出记录

核心功能:

  • 新增收入/支出
  • 按日期、分类筛选
  • 查看本月收支汇总
  • 导出 CSV
  • 删除单条记录

页面结构:

  • 顶部:月度汇总卡片
  • 中部:录入表单
  • 底部:账单列表和筛选区域

技术约束:

  • 使用 HTML/CSS/JavaScript
  • 不接后端
  • 数据保存在 localStorage
  • 不引入大型 UI 框架

不要做什么:

  • 不要登录注册
  • 不要多用户系统
  • 不要复杂图表库

异常处理:

  • 金额为空时报错
  • 日期为空时默认当天
  • 分类为空时默认“其他”

验收标准:

  • 新增记录后刷新页面不丢失
  • 按月份筛选结果正确
  • 导出 CSV 文件可直接用 Excel 打开

区别不在字数,而在可执行性

它和 PRD、技术方案、测试用例是什么关系?

你可以把 spec 理解成三者之间的“轻量交集”:

  • 比 PRD 更短,不追求面面俱到
  • 比技术方案更偏结果,不要求写到架构评审级别
  • 比测试用例更早出现,先定义“什么叫完成”

所以它特别适合 AI 协作:既不重到写不动,又不轻到 AI 无从下手。

---

吴恩达这套思路,对普通人最有价值的启发是什么

真正有价值的,从来不是课程里的名词,而是你今天能不能拿来用。

如果把这套思路浓缩成对普通中国 AI 用户最实用的三句话,我会总结成下面这三点。

1. 别再只写一句话需求

很多人用 AI 编程时,习惯把它当“自动许愿机”:

  • 帮我做个官网
  • 帮我写个爬虫
  • 帮我做个后台
  • 帮我优化这个页面

问题是,这些话对人类都不够清楚,更别说对模型。

AI 在这种场景下通常会默认补全一堆你没说出口的假设。于是它第一次给的结果看似完整,实际却偏题:功能不对、技术不对、边界不对、风格不对。

一句话需求最大的问题,不是太短,而是默认前提太多。

2. 把“验收标准”写出来

这是最容易被忽略、但最能立竿见影的一步。

很多人和 AI 来回改 10 轮,根本原因是没有提前定义“怎样算改好了”。如果没有验收标准,每一次修改都只是情绪表达:

  • 看起来不太对
  • 再简洁一点
  • 更像产品一点
  • 更高级一点

这种词非常主观,AI 很难稳定执行。

相反,如果你写成:

  • 表单提交后数据必须保存在本地
  • 移动端宽度 390px 下不能横向滚动
  • 抓取失败后最多重试 3 次
  • 接口超时后要写日志并跳过当前任务

AI 的执行空间就小很多,结果自然更稳。

3. 把“不想要什么”也写进去

很多返工,其实不是因为 AI 没做,而是因为它做多了。

比如你只是想要一个个人用的小工具,它却给你加了用户登录、后台权限、复杂数据库设计;你只想做个简单爬虫,它却默认接入完整任务调度系统。

所以写 spec 时,有一项特别重要:明确排除项。

比如:

  • 不要登录注册
  • 不要后端服务
  • 不要云存储
  • 不要复杂动画
  • 不要引入大型依赖
  • 不考虑多语言和国际化

这一步很像装修时提前说“这个墙别拆”。你不说,施工的人就会按自己的经验发挥;你说了,返工成本会低很多。

---

两个案例看懂:Spec 为什么能显著减少跑偏和返工

案例 A:小白做记账网页

模糊需求版

帮我做一个记账网页。

常见结果是:

  • UI 看上去还行,但没有筛选
  • 数据只存在内存里,刷新就没了
  • 默认做成英文界面
  • 没有导出功能
  • 手机端布局错乱
  • 甚至顺手给你加了登录模块

这类结果最大的问题不是“不能用”,而是离真正可用总差一口气。你会进入无休止补丁模式。

Spec 化版本

# 项目目标

做一个个人记账网页,适合中国用户日常记录收支。

用户是谁

不懂财务、主要在手机上使用的个人用户。

要解决什么问题

快速记录每日收支,并按月份查看统计。

功能清单

  • 新增收入/支出
  • 分类选择:餐饮、交通、购物、房租、工资、其他
  • 按月份筛选
  • 显示月收入、月支出、月结余
  • 删除记录
  • 导出 CSV

输入/输出示例

输入:2025-08-20,支出,餐饮,35 元,备注“午饭”

输出:账单列表新增一条记录,并更新当月统计

技术栈要求

  • HTML/CSS/JavaScript
  • 本地 localStorage 存储
  • 不使用后端

不要做什么

  • 不要登录注册
  • 不要多用户
  • 不要联网同步
  • 不要复杂图表

验收标准

  • 刷新页面数据不丢失
  • 月份筛选正确
  • 导出文件可在 Excel 中打开
  • 在手机屏幕下可正常使用

这时 AI 给出的结果通常会更接近“半成品产品”,而不是“课堂作业”。

案例 B:进阶用户写爬虫

模糊需求版

帮我写一个 Python 爬虫并保存到数据库。

看起来没问题,实际上信息黑洞很多:

  • 爬哪个站?
  • 静态还是动态页面?
  • 抓列表页还是详情页?
  • 多久抓一次?
  • 如何去重?
  • 数据库表结构是什么?
  • 报错怎么处理?
  • 失败要不要重试?

于是 AI 往往会生成一个“能跑一下”的脚本,但离稳定使用差得很远。

Spec 化版本

# 项目目标

抓取某资讯站的文章标题、发布时间、正文链接,并保存到 MySQL。

目标页面

  • 仅抓取栏目列表页前 5 页
  • 每篇文章提取:title、url、publish_time、summary

抓取规则

  • 每天执行 2 次
  • 已抓取过的 url 不重复入库
  • 遇到 429 或超时,最多重试 3 次
  • 请求间隔随机 1-3 秒

数据库要求

表名:articles

字段:

  • id
  • title
  • url(唯一索引)
  • publish_time
  • summary
  • crawled_at

日志要求

  • 成功抓取数量
  • 失败 URL
  • 重试次数
  • 最终错误原因

不要做什么

  • 不使用分布式框架
  • 不接消息队列
  • 不做复杂调度系统

验收标准

  • 重复 url 不重复写入
  • 抓取失败有日志
  • 数据库字段完整
  • 脚本可单独运行,配置项可修改

这种写法的价值,不只是“更像专业开发”,更重要的是它能明显减少两类成本:

1. Bug 成本:很多错误在编码前就被框住了

2. 沟通成本:你不用每轮都重新解释一次自己到底要什么

---

普通人怎么写出更像“Spec”的 AI 编程需求

最实用的方法,不是追求一次写完,而是采用两阶段流程:

1. 先让 AI 帮你补全 spec

2. 再让 AI 按 spec 开发

这招非常像“先让 AI 当产品经理,再让 AI 当程序员”。

一份可直接复制的需求模板

# 项目目标

用户是谁

要解决什么问题

功能清单

输入/输出示例

技术栈要求

UI/交互要求

错误处理

不要做什么

验收标准

双阶段提示词示例

#### 阶段一:补全 spec

我想做一个 AI 编程项目,但我的想法还比较模糊。请你先不要写代码,而是先充当产品经理,基于我的描述帮我补全一份结构化 spec。

要求你按以下字段输出:

项目目标、目标用户、使用场景、核心功能、输入输出示例、技术约束、不要做什么、异常处理、验收标准。

如果信息不完整,请先列出你需要我补充的关键问题,再给出一个建议版 spec 草稿。

#### 阶段二:按 spec 开发

现在请你基于下面这份已确认的 spec 开发第一版代码。

要求:

1. 严格按照 spec 实现,不要自行新增功能

2. 先给出项目文件结构

3. 再分步骤输出核心代码

4. 每完成一个模块,说明它对应了哪条验收标准

5. 如果 spec 有冲突,先指出问题,不要擅自猜测

一个非常关键的小技巧:先确认,再开工

很多人最容易犯的错,是把“需求讨论”和“直接开发”混在一个回合里。结果就是 AI 一边猜、一边做,做着做着就跑偏。

更高效的方式是:

  • 第一轮:只讨论需求
  • 第二轮:只确认结构
  • 第三轮:再生成代码
  • 第四轮:按验收标准测试和修复

这时候你会明显感觉到,AI 不再像一个爱发挥的实习生,而更像一个按图施工的工程执行者

---

从“会提问”到“会写规格”,AI 编程的门槛正在重新定义

过去两年,大家都在讲 prompt engineering。这当然重要,但今天更值得重视的,是另一件事:需求工程正在平民化。

以前,软件开发的权力掌握在能写代码的人手里;现在,AI 把“动手实现”这一步大幅自动化了,于是新的门槛变成了:你能不能清楚定义任务。

这不是在说程序员会被取代。恰恰相反,专业开发者依然重要,尤其是在复杂系统、架构设计、性能优化和工程治理上。但对普通人来说,变化已经足够大:

  • 你不一定要先学会写代码
  • 但你必须学会把需求写清楚
  • 你不一定要会设计系统
  • 但你要知道什么是目标、约束、边界和验收

这就是“Spec 驱动开发”真正迷人的地方:它不是让非程序员假装成程序员,而是让更多人第一次拥有了“指挥软件开发”的能力。

如果你想马上拿这套方法实测,一个很实用的做法是:在多模型环境里对比同一份 spec 的执行效果。像 api.884819.xyz 这样的聚合接口平台,就更适合做这种横向测试:同一份需求说明,切换 Claude Sonnet 4.6、Claude Opus 4.6、Gemini 3.1 Pro、Deepseek R1/V3、通义千问 Qwen3、Kimi K2.5、GLM-5,看谁更稳定、谁更“听话”。

而且对普通用户很友好:

  • 用户名 + 密码即可注册,不需要邮箱验证
  • 平台内置 AI 对话功能,注册后直接能用
  • 国产模型完全免费
  • 没有月租、没有订阅,按量付费
  • 新用户注册即送体验token。

真正开始写 spec 之后,你很快会发现:模型能力当然重要,但清晰表达需求的能力,正在变成更稀缺的竞争力

AI 正在把软件开发从“手写代码”变成“定义规格”,而这很可能就是普通人第一次接近开发权力的入口。

下一篇,我们就接着聊一个更落地的问题:不会写 PRD 也没关系,普通人怎么用一页纸 Spec 让 AI 做出可用小程序。

本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。

#AI编程 #Spec驱动开发 #吴恩达 #人工智能 #8848AI #Prompt技巧 #需求工程 #Claude