零代码应用开发·第 3 章·3 学时

把想法说成规格

需求单的五栏、验收标准的写法,以及让它把你问清楚。

本章精髓 写得出验收标准,才算真的想清楚了。一个功能如果说不出"在什么情况下、做什么操作、应该出现什么结果",它就还只是一个念头,做出来多半不是你要的。

学完本章后,你应该能够:

  1. 指出一句话需求与一页规格生成结果的差别,并说明每一处差别来自规格里的哪一句;
  2. 按五栏格式写出一份需求单:一句话定位、用户与场景、本版要做、本版不做、验收标准;
  3. 把"好看""方便"这类形容词改写成能用是或否判断的验收标准;
  4. 用角色反转让大模型把你没想清楚的地方一个一个问出来;
  5. 用同一套验收标准给两版结果逐条打勾,并判断通过的那一条是不是碰巧。
配套演示文件 第03章演示_两种下场.html 第03章演示_它替你定了多少.html 第03章演示_需求单.html

同一个题目,两种下场

一句话 · 一页规格 · 角色反转

先看两版结果摆在一起的样子,再说清差别从哪里来。

1.1同一个题目,发两次

题目是同一个:把手上几本用不着的教材转出去。第一次只给一句话,第二次给一页规格。

打开 第03章演示_两种下场.html,两版结果并排放着:

一句话版
规格版
商品列表加搜索框、筛选栏、购物车、登录注册
一页三本书,点按钮显示联系方式,没有别的
字段是商品名、价格、库存、描述
字段是课程名、教材名、成色、价格、联系方式
成色由使用者自己填,填什么的都有
成色是四个固定选项,收上来能直接比较
手机上要上下滑三屏,还要左右拖
手机竖屏一屏看完,不用左右拖
联系人写着"张三",电话 13800138000
联系方式是占位内容,交付前自己替换

左边那版并没有做坏,它只是按自己见过最多的样子做了

1.2它没做错什么

看到左边那一版,第一反应往往是这个模型不好用,而它其实并没有做错。

它拿到的有效信息只有"二手教材转让"这几个字。至于给谁用、有几本书、要不要登录、成色怎么描述、联系方式怎么给出去,一个字都没有。这些它都得替你定,而它替你定的依据,是它见过最多的那一种做法,也就是电商网站。

你少写的每一句,它都会替你决定。而且它不会告诉你它定的是哪一种。

打开 第03章演示_它替你定了多少.html,页面把"做一个二手教材转让的页面"这一句话背后的十四处待定事项一条条摆出来,每一条点开都能看到它默认会怎么定。这十四条里,多数你其实心里有答案,只是没写出来。

讨论如果这一句话改成"给大二学生转让二手教材的手机页面",你猜结果会往哪个方向变?剩下的哪几处它仍然得靠猜?

1.3本章新技巧:角色反转,让它来问你

把自己没想清楚的地方找出来,是这一步最难的事:自己找往往找不到,让它来问,一个一个就问出来了。

做法是把它从"生产者"换成"提问者":不让它写代码,只让它做需求访谈,一次问一个问题,问完再把你的回答整理成一页规格。

被问住是这一步应有的结果。访谈到第三个问题就答不上来,说明的不是你笨,而是那一处正是你选题里最模糊的地方。答不上来的那几个问题,恰好就是要先想清楚的那几件事。

1.4可直接复制的提示词

第一条,先用一句话生成一版,留着做对照:

发给 AI一句话版 · 用来做对照,不要修饰它
做一个二手教材转让的页面。

第二条,角色反转,让它访谈你:

发给 AI需求访谈 · 一次只答一个问题
你是一名产品经理。我有一个想做的小工具,目前只有一个模糊的想法。 请像做需求访谈一样,一次只问我一个问题,等我回答之后再问下一个,一共问五个。 提问方向:谁会用、什么时候用、用什么设备打开、他要输入什么、他最终要拿到什么。 五个问题问完之后,把我的回答整理成一页规格,包含五栏: 一句话定位/用户与场景/本版要做(不超过 3 条)/本版不做(至少 3 条)/ 验收标准(至少 5 条,每条写成"在什么情况下,做什么操作,应该出现什么结果",不许出现形容词)。 我回答"暂不确定"时,请原样保留这四个字,不要替我决定。 我的想法是:把手上几本用不着的教材转给同专业的同学。

第三条,拿到规格并自己改定之后,用它生成第二版:

发给 AI规格版 · 把整页需求单原样贴进去
按下面这一页规格生成页面。规格里没有写到的功能一律不要自行添加。 [把你改定后的整页需求单粘贴在这里] 把 HTML、CSS、JavaScript 全部合并到一个 .html 文件里,我要直接另存双击运行; 不要引用任何外部链接、字体或图标库;中文使用 UTF-8 编码。
备用方案 现场生成失败或网络不好时,直接打开 第03章演示_两种下场.html,两版结果与打勾表都是现成的,讲解与上机都可以对着它进行。
一次只问我一个问题,等我回答之后再问下一个
它默认一口气抛出十个问题,你只会挑好答的答
我回答"暂不确定"时,请原样保留这四个字
你答不确定,它顺手编一个填上,编的那条会一路带进作业
本版不做至少 3 条
不写不做什么,它按见过的完整产品替你补全
每条写成"在什么情况下,做什么操作,应该出现什么结果"
它写出来的验收标准多半是形容词,没法打勾
规格里没有写到的功能一律不要自行添加
规格写得再细,它仍然想给你配一套登录注册

1.5大模型的常见偏差

它一口气把五个问题全抛出来 访谈就变成了填表,你会挑容易的答,难的那几个正好被跳过。提示词里"一次只问一个"这句必须留着,它仍然合并提问时,回一句"请只问下一个问题"。
你答"暂不确定",它替你填一个 它填的那一条读起来很顺,你多半不会再回头看,于是一个你从没决定过的做法就进了规格。宁可让规格上留着"暂不确定",也不要让它代填。
它写的验收标准全是形容词 "界面简洁美观""操作流畅"这类句子它写得又快又多。凡是没法用是或否回答的,一条都不要留。

需求单:五栏写清一个想法 本章重点

需求与规格 · 用户故事 · 范围 · 最小可用版本

本章的核心内容集中在这一部分和下一部分。

本章要学的术语 · 八个
01需求requirement
02规格specification
03用户故事user story
04范围scope
05最小可用版本MVP
06验收标准acceptance criteria
07边界情况edge case
08占位内容placeholder

这八个术语会原样出现在项目文档、需求评审与验收单上。前五个在本部分讲解,后三个在第三部分讲解。

2.1一页需求单长什么样

下面这一页就是上一部分那个题目的规格版全文,五栏,一页写完。这份东西发给大模型是任务单,拿回结果之后是验收清单,同一份用两次。

需求单 · 二手教材转让页 · v1
一句话定位
一页纸列出我要转出去的三本教材,同专业同学扫一眼就知道有什么、怎么找我。
用户与场景
作为一名刚考完试、手上剩了三本教材的大三学生,我想要把转让信息做成一个页面发到班群里, 以便同专业的同学在手机上一眼看完,不用我在群里一条条回消息。
本版要做
① 列出三本教材,每本显示课程名、教材名、成色、价格四项。
② 成色从四个固定选项里选:九成新、八成新、有笔记、有破损。
③ 页面底部一个按钮,点击后显示我的联系方式。
本版不做
登录与注册
搜索与筛选
在线支付与订单
别人在页面上留言或下单
验收标准
1 在手机竖屏下打开页面,三本教材一屏看完,不出现左右滚动条。
2 打开页面时,联系方式不显示;点一次底部按钮之后,联系方式显示出来。
3 每本教材都显示课程名、教材名、成色、价格四项,缺任意一项即为不通过。
4 三本教材的成色文字,都出自那四个固定选项,不出现第五种写法。
5 断开网络后刷新页面,页面内容与字体样式与联网时一致。
6 页面上不出现我没有填写过的姓名与电话。
7 点击底部按钮显示联系方式之后,页面停留在原处,不跳转,也不弹出新窗口。

这一页有两处值得先说一句。本版不做那一栏,写的都是别人一看题目就会想到、而这一版偏偏不做的东西,它挡住的正是大模型最爱自行补齐的部分。验收标准每一条都能用是或否回答,换一个人照着做一遍,得到的结论应该一样。

这一页还缺一条,你能不能先自己找出来。一本教材都没有的时候页面什么样,上面七条一条也没有管到。边界情况的标准是写规格时最容易漏掉的一类,上机时你的需求单里要补上这一条。

2.2五个知识点,一个一个看

01需求是想要什么,规格是做成什么样
做件衣服看裁缝发挥
一张尺寸单照单做出来

同一件事,说到什么程度,结果差得很远

现象:你说"做个二手教材转让页",它给你一个带购物车的电商网站。

概念:需求(requirement)是你想解决的那件事;规格(specification)把它写成可执行、可验收的描述:做什么、不做什么、怎么算做好了。

类比:跟裁缝说"做件衣服"是需求,递一张写着尺寸、面料、袖长的单子是规格。

02用户故事:谁,在什么情况下,要拿到什么
作为刚考完试、手上剩三本教材的大三学生
我想要把转让信息做成一个页面发到班群
以便同学在手机上一眼看完,我不用一条条回消息

三段都写具体,这句话才有信息量

现象:需求单第二栏写成"作为用户,我想要一个好用的系统",写完等于没写。

概念:用户故事(user story)的固定句式是:作为【谁】,我想要【做什么】,以便【达成什么】。第三段最容易漏,而它决定了这个功能到底值不值得做。

类比:"作为用户,我想要一个好用的系统",信息量约等于"作为人,我想吃点东西"。

03范围:写清不做什么,比写做什么更管用
本版要做三条
本版不做登录注册 · 搜索筛选 · 在线支付 · 留言下单

下面那一栏空着,它就替你填满

现象:需求里一个字没提登录,做出来的页面顶上就是一个登录框。

概念:范围(scope)指这一版做到哪里为止。写下不做什么,是控制范围最有效的一句话,因为大模型的默认动作是按它见过的完整产品替你补齐。

类比:装修合同上写清"不含家电",比只写"全包"省事得多。

04最小可用版本:一个人能从头用完一次
八个功能各做三成八个半成品
三个功能各做十成一件能用的作品

判据是有没有一条从头走到尾的路

现象:功能清单列了八条,做到一半发现哪一条都还差着,交上来没有一条能完整走完。

概念:最小可用版本(minimum viable product,MVP)指能让一个人从头到尾完整用完一次的最小版本。判断办法不是数功能条数,而是问有没有一条完整走得通的主线。

类比:先把一条路修通能走车,再考虑修第二条。

05需求少一句,功能就少一项
生成之前
给它的任务单
同一份
生成之后
你的验收清单

功能列表写一次,用两次

现象:规格里漏写了删除,做出来的页面就没有删除按钮,它不会替你补。

概念:它只做需求里写出来的内容。这也是功能列表的第二个用处:生成之前它是任务单,生成之后它就是验收清单,逐条对着数,少哪一条一目了然。

类比:点菜没点汤,端上来就没有汤。

2.3两版的每一处差别,都能追到规格里的一句话

把两版结果摆在一起,差别不是凭空来的。每一处都对得上规格里的某一句,对不上的那几处,就是规格还没写到的地方。

这一处差别
一句话版
规格里的哪一句
多出登录注册
顶部有登录框
本版不做:登录与注册
字段对不上
商品名、价格、库存、描述
本版要做①:课程名、教材名、成色、价格
成色的填法
一个空框,自己填
本版要做②:四个固定选项
一屏看不完
上下三屏,还要左右拖
验收标准 1:一屏看完,无左右滚动条
联系方式怎么给
直接印在每一条上
验收标准 2:点按钮之后才显示
编造的姓名与电话
张三 13800138000
验收标准 6:不出现我没填写过的姓名与电话
成色那一条尤其值得说一句:让使用者自己填,收上来的写法五花八门,没法比较;给四个固定选项,收上来就是能直接排序的东西。这一句写不写进规格,差的不是好不好看,是这份数据能不能用。
一个想法适不适合现在动手,有两问可以判断。第一,能不能用一句话说清输入什么、输出什么。第二,能不能靠人工检查,判断每一条输出是对是错。两问都答得上来,通常可以开工;有一问答不上来,先把范围缩小再说。

验收标准:能打勾才算数

是或否 · 形容词改写 · 边界 · 占位

需求单里最难写、也最值钱的就是这一栏。

3.1另外三个知识点

06验收标准:换个人照做,结论应该一样
界面友好两个人两种结论
点一次按钮之后,联系方式显示出来照做一次即可判定

判据不在句子长短,在能不能得出同一个结论

现象:验收标准写着"界面友好",你说通过,同组同学说不通过,谁也说服不了谁。

概念:验收标准(acceptance criteria)要能用是或否回答。写法是三段:在【什么情况下】,做【什么操作】,应该出现【什么结果】。

类比:验收合同不写"质量好",写"误差不超过 2 毫米"。

07边界情况:一条都没有的时候什么样
一本书都没有
书名特别长
只有一本
价格填了 0
填了汉字
连点两次按钮

正常情况谁都想得到,出事的都在这几种

现象:三本书的时候页面很好看,删到一本都没有,页面变成一片空白。

概念:边界情况(edge case)指处在取值两端或不合常规的输入:空的、只有一条、超长的、零和负数、特殊符号、连续操作两次。验收标准里至少要有一条覆盖边界。

类比:门锁要试的不是正常开门,是没带钥匙和拿错钥匙的时候。

08占位内容:交付前必须换掉的那些字
张三13800138000
姓名占位联系方式占位

写成一眼能看出是占位的样子,才不会漏换

现象:页面上出现一个叫张三、电话 13800138000 的人,而你从没填过这两项。

概念:占位内容(placeholder)是等着被替换的示例数据。13800138000 是流传多年的示例号码,留在页面上等同于写了"此处应有电话"。规格里要写明:凡是姓名、电话、机构名称,一律使用一眼能看出是占位的写法。

类比:交房时把墙上的施工标记擦掉。

本章方法 验收标准三段式:在【什么情况下】,做【什么操作】,应该出现【什么结果】。写不出这三段的功能,说明它在你自己那里也还没有想清楚。

3.2形容词改写:六组对照

需求单写不下去,多半卡在这一步:心里想的是"要好看",但好看没法打勾。办法是问自己一句:你说的好看,具体是指屏幕上出现什么、不出现什么。

写成形容词
改成能打勾的
页面要好看
在手机竖屏下打开,三本教材一屏看完,不出现左右滚动条
用起来要方便
从打开页面到看到某一本书的联系方式,点击不超过两次
信息要全
每本教材都显示课程名、教材名、成色、价格四项,缺任意一项即为不通过
要有专业感
全页只用两种字号与两种颜色,标题与正文各一种
加载要快
断开网络后刷新,页面内容与字体样式与联网时一致
手机上要能看
在手机竖屏下打开,正文最小字号不小于 14 像素,无横向滚动条

右边六条有一个共同点:都写出了在什么屏幕上、做什么动作、看到或看不到什么。改写之后句子确实变长了,但换来的是这一条可以交给别人去验,而不只有你自己心里有数。

讨论"页面要有专业感"这一句,除了上表给的那一条,还能改成哪两条能打勾的标准?

3.3打勾并不等于做对

拿同一套验收标准给两版逐条打勾,会遇到一种情况:某一条两版都通过。

验收标准
一句话版
规格版
1 手机竖屏一屏看完,无左右滚动条
2 点一次按钮之后,联系方式才显示
3 四项信息齐全,缺一项即不通过
4 成色只出自四个固定选项
5 断网刷新,内容与样式不变
6 页面上不出现我没填写过的姓名与电话
7 点按钮显示联系方式之后,页面不跳转,也不弹出新窗口
第 7 条两版都通过,但通过的理由完全不同
规格版通过,是因为它做了那个按钮,点下去联系方式在原地显示出来,确实没有跳转。 一句话版通过,是因为它压根没有这个按钮,这一条没有东西可以违反。 换句话说,一句话版这一条的通过来自功能缺失,不是来自做对了。 逐条打勾之后还要再走一遍:每一条通过的,问一句这个功能它到底做了没有。

这一步在期末答辩上会反复出现。一份作品拿着一张全是勾的验收表,不代表它做完了,也可能是那几条标准恰好都绕开了它没做的部分。

3.4前沿三分钟:规格正在变成一种要存档的东西

每章固定栏目 · 一条与当章内容相关的行业动态

2025 年起,把"先写规格再生成代码"做成工具的做法在行业里成型。GitHub 的 Spec Kit、亚马逊的 Kiro 一类工具,把需求、设计方案、任务清单、验收标准做成四份独立的文件,放进版本管理,代码由模型按这几份文件生成。改功能时先改规格,再让模型按新规格重做。

斯坦福 2025 年秋季新开的一门课把这件事概括成一句话:提示词是新的源代码。这句话的意思不是提示词很重要,而是提示词要像源代码一样被对待,要有版本、要能被检查、要存档,而不是发完就丢在聊天记录里。

机器可以代替人执行,不能代替人定标准。这几套工具把规格从"聊天框里的一段话"提升成"要存档、要改版、要被检查的东西",做的正是本章要你做的事,只是它们用的是工程化的形式。

规格在整个流程里的位置

五个环节 · 改动成本 · 规格要跟着改

写规格是第一步,也是改起来最便宜的一步。

4.1五个环节,换什么工具都是这五步

从一个想法到交出去,中间是这五个环节。工具年年在变,这五步没变过。每一步末尾都有一个能得出过或不过结论的动作,走不过去就不要往下一步走。

1
需求梳理
写出一页需求单,五栏齐全
过不过:每一条功能都写得出验收标准
2
AI 生成
把整页规格发过去,拿回代码并保存
过不过:拿到的是一个能双击打开的文件
3
调试优化
逐条打勾,没过的那条单独提出来改
过不过:验收标准逐条通过,且不是碰巧通过
4
分享发布
交到别人手上,或换一台设备打开
过不过:在别人的设备上完整用完一次
5
迭代维护
改需求,改规格,重新生成
过不过:原来通过的条目重新打一遍勾仍然通过

第 1 步和第 3 步用的是同一份东西:需求单。这也是把它写清楚最划算的理由,一份文件在流程里用了两次。

4.2同一处改动,在不同阶段的代价

把"成色由使用者自己填"改成"四个固定选项",这一处改动在五个环节里的哪一步提出来,代价差得很远。

在需求梳理时改
把规格里那一句改掉
改一句话
在生成之后改
重新生成,全部验收标准再走一遍
重做加重测
在交出去之后改
已经填过的数据要清洗,拿到旧版的人要重新通知
连数据一起动

同一处改动,越往后越贵

图纸上挪一堵墙,和房子盖好了砸墙,是两件事。需求阶段是这门课里唯一改动近乎免费的阶段,多花在这里的时间,后面都会还给你。
讨论如果这个页面已经做完并发到班群里了,才发现"成色"应该改成四个固定选项,你需要动的地方有哪些?把它们一条条列出来。

4.3规格是活的,改了就要同步改

做到一半改了主意,是常事。要紧的是改完之后回头把需求单一起改掉,并在标题上把版本号往前挪一格,写成 v2。

不同步改,会遇到两件麻烦事:一是验收时对着旧标准打勾,明明改对了却判成不通过;二是过一段时间之后,你自己也说不清当初为什么定成这样,只好凭印象重猜一遍。

一个可以照着做的习惯,从现在起用到期末。每次让大模型改动之前,先回需求单上把对应那一句改掉,再把改过的整页规格发过去。顺序反过来的时候,规格就永远落后于代码一步。

上机实验

三选一 · 一页规格 · 逐条打勾

上机环节由此开始,当堂完成并提交。

5.1三个题目,任选其一

三个题目做的是同一件事:先用一句话生成一版,再用角色反转做完五问、写出一页需求单、生成第二版,最后用同一套验收标准给两版逐条打勾。区别只在题材。

题目 A
二手教材转让页

手上三本用不着的教材,一页看完,点按钮才显示联系方式。

通用
题目 B
社会实践找搭子

一个项目一张卡:做什么、缺几个人、什么时间、怎么找发起人。

偏文科
题目 C
实验数据记录卡

一次实验一张卡:批次号、条件、结果三项,条件从固定选项里选。

偏理工

写需求单时,第03章演示_需求单.html 可以直接用:五栏填完,页面会实时提示哪一条验收标准里还留着形容词,填好之后一键复制成整段文字。

5.2共同验收标准

需求单五栏齐全 一句话定位、用户与场景、本版要做、本版不做、验收标准 逐栏点一遍,缺一栏即为不通过
一句话定位说清了给谁用 不超过 40 字,且句子里出现了使用者 数一数字数,再找一找使用者是谁
用户与场景写成了完整的三段 作为谁、我想要做什么、以便达成什么 看第三段在不在,它最容易被漏掉
本版不做至少三条 写的是别人一看题目就会想到、这一版偏偏不做的东西 数条数,再问一句:没有它这件事还办不办得成
验收标准至少五条,每条能用是或否回答 写成在什么情况下、做什么操作、应该出现什么结果 换同组同学照着做一遍,看能不能得到同一个结论
验收标准里至少有一条覆盖边界情况 一条都没有、只有一条、超长、零或负数、连点两次 逐条看,找出那一条边界标准
验收标准里没有形容词 好看、方便、友好、流畅、合理、专业,一个都不留 用需求单页面的形容词检查,或自己搜这六个词
两版结果都留下来了 一句话版与规格版,分别存成两个文件 回到文件夹,两个文件各双击一次
打勾表逐条填了,并标出碰巧通过的那条 通过是因为做对了,还是因为压根没做 对每一条通过的问一句:这个功能它到底做了没有

5.3常见错误与处理

需求单写得比代码还长
把怎么实现也写进去了,例如用什么标签、写几个函数
需求单只写要什么和怎么算做好了,实现方式交给它决定
本版不做那一栏想不出来
脑子里只有要做什么
把你想到过的功能逐条自问:没有它,这件事还办不办得成。办得成的都放进本版不做
访谈到第三个问题就答不上来
这一处本来就没想清楚
这是这一步应有的结果。停下来把那一处想清楚再往下答,不要随口给一个
回答"暂不确定",它自己编了一个填上
它倾向于把空缺补齐
提示词里补一句"我回答暂不确定时请原样保留",并在收到规格后逐栏核对
两版差别不明显
题目太常见,一句话版碰巧猜对了
换一个只有你们专业才有的规则加进去,或者把一句话版给的信息再减少一点
验收标准改写完还是没法判断
句子里缺了前置条件,只写了操作和结果
补上"在什么情况下",例如在手机竖屏下、在一条记录都没有时
打勾时两版都通过
这一条可能是碰巧通过
检查这一条对应的功能,一句话版有没有做。没做而通过的,标注出来
一句话版生成得意外地好
这类页面它见过太多,默认做法恰好接近你要的
加一条只有你们专业才有的规则再试一次,差别立刻出来

5.4提交内容

一页需求单
五栏齐全,验收标准至少五条且含一条边界
整页文字粘贴进作业文档
两版生成结果
一句话版与规格版,都能双击打开
两个 .html 文件
打勾对照表
两列逐条打勾,标出碰巧通过的那一条
表格填进作业文档
一句话说明
差距最大的是哪一条,它对应规格里的哪一句
写在作业文档里

提交方式:按教师提供的作业模板(Word)填写,文档开头注明所选题目。提交渠道见课堂通知。当堂提交。

5.5再进一步(选做)

把同一页需求单,原样发给另一家厂商的模型,生成第三版。

如果第三版在验收标准的每一条上都与规格版一致,说明这页规格写到了不依赖某一个工具的程度。哪几条对不上,哪几条就是还写得不够死的地方,回去补一句再试。

本章小结
本章五条结论
  1. 需求是想要什么,规格是做成什么样、怎么算做好了。你少写的每一句,它都会替你决定,而且不会告诉你它定的是哪一种。
  2. 需求单五栏:一句话定位、用户与场景、本版要做、本版不做、验收标准。这份东西发出去之前是任务单,拿回结果之后是验收清单。
  3. 写得出验收标准,才算真的想清楚了。一个功能如果说不出在什么情况下、做什么操作、应该出现什么结果,它在你自己那里也还没有想清楚。
  4. 形容词不构成标准。好看、方便、友好、专业,换一个人判断就是另一个结论。改写的办法是问自己:屏幕上出现什么、不出现什么。
  5. 打勾并不等于做对。通过的那一条还要再问一句,它是做对了,还是因为这个功能压根没做而绕开了。
本章脉络