← 返回Vibe Coding 做 App:一次有效迭代的六步闭环
1 / 8
Vibe Coding·8 步

Vibe Coding 做 App:一次有效迭代的六步闭环

以 CATALK 2.1 为例,拆解发现需求、提出方向、让 AI 给方案、选择并修正、落入文档、开发测试六步,讲清每一步人和 AI 各做什么;附三段可直接复制的提示词。

TL;DR · 一句话结论

像聊天一样想到哪改到哪,项目会越改越乱。一次有效迭代分六步:点子先进需求池;按版本目标挑需求,每个决定带理由;你给方向、AI 出三个方案比稿;先选方向再精准反馈逐轮修改;定下来的写进 PRD;最后才开发,边写边测并列出没验证的。前五步都不写代码。

1
Step 1

像聊天一样迭代,为什么越改越乱

视频封面:Vibe Coding 时,如何进行一次有效迭代
视频封面:Vibe Coding 时,如何进行一次有效迭代

很多新手做 Vibe Coding,还在沿用和 AI 聊天的方式:想到一句就丢给 AI 一句,这里改个颜色,那里加个按钮,这个 bug 修一下。

结果不是改了这里,就是坏了那里,越改越乱。这一版到底做了什么,自己都说不清;过几天再打开,下一版也不知道从哪开始。

像聊天一样迭代:这里改个颜色、那里加个按钮、这个 bug 修一下,改了这里坏了那里,最后说不清这一版到底做了什么。
像聊天一样迭代:这里改个颜色、那里加个按钮、这个 bug 修一下,改了这里坏了那里,最后说不清这一版到底做了什么。

这一篇以作者自己做的 App CATALK(记录猫咪叫声的软件,已上架 App Store)为例,讲一次完整的迭代闭环怎么做。作者把它分成了六步:

一次有效迭代的六步闭环:发现需求 → 提出方向 → AI 给方案 → 选择并修正 → 落入文档 → 开发测试。
一次有效迭代的六步闭环:发现需求 → 提出方向 → AI 给方案 → 选择并修正 → 落入文档 → 开发测试。
  1. 发现需求
  2. 提出方向
  3. 让 AI 给方案
  4. 选择并修正
  5. 落入文档
  6. 开发和测试

注意,最后一步才是开发。

2
Step 2

第一步:发现需求,先进需求池

很多人做迭代,想到一个点子马上丢给 AI,冒出来一个就开干一个。发现需求不是想到就做,而是先把需求攒起来,建一个需求池。

需求一般来自三个方面:

需求池的三个来源:自己用时发现的改进点和 bug(修 bug 也算需求)、作为设计者的产品构想、开发中和 AI 讨论出来的。
需求池的三个来源:自己用时发现的改进点和 bug(修 bug 也算需求)、作为设计者的产品构想、开发中和 AI 讨论出来的。
  1. 自己用的时候发现的:改进点,或者产品的 bug。没错,修 bug 也算需求;
  2. 产品构想:作为产品设计者对下一步的设想,比如云存储、多设备同步、付费点设计,或者你觉得自己有个天才的想法;
  3. 开发中和 AI 讨论出来的。

不管点子是什么、从哪来,冒出来时都先不急着做,统一记进一个项目文件里,这就是你的需求池。

在 CATALK 里,需求池是 TODO.md。它有一个规矩:所有新想法都只记在这一个地方,写清楚是什么问题、在哪发现的、哪天记的。

CATALK 的需求池是 TODO.md:新想法只记这一处,每条写清是什么问题、在哪发现的、哪天记的。
CATALK 的需求池是 TODO.md:新想法只记这一处,每条写清是什么问题、在哪发现的、哪天记的。

TODO.md 的「迭代方向」一节开头就写着:新想法只记在这里,这是想法和候选功能的唯一入口。

提示词①:记下一个需求

想到一个点子时,先别让 AI 开始干活,这样跟它说:

记录一个问题:(你发现的问题或想法)
把它记进 TODO 的需求池,写清楚是什么问题、在哪发现的、哪天记的。先不要改代码,也不用现在解决。

发现需求不是想到就做,而是先进需求池。需求池和版本目标的更多细节,可以看 有了新点子要不要马上做。

3
Step 3

第二步:提出方向,每个决定都带理由

开新版本时,不是把需求池里的全做了。既然是池子,就要挑。用什么标准挑?版本目标。有了目标,需求才有重要程度和优先级。

比如 CATALK 2.1 只解决一件事:让记录更方便。

有了目标,就能让 AI 把项目现状读一遍,按目标列出候选。做 2.1 时,作者开工只说了一句话:

检查一下当前版本还有哪些待排队的修正或者需求。

AI 就按「方便记录」这个目标,列了 8 个候选。

只回「做 / 不做」是不够的

AI 列完候选,很多人只回两个字:做,或者不做。这样 AI 只拿到一个结论,不知道你为什么这么选。作者的习惯是:每一个决定都带一个理由。

比如当时 AI 建议给 CATALK 加一个快捷入口:在主屏幕长按图标就能直接开始录制。作者说这个不做,理由是:自己平时在小区里遇到流浪猫,第一反应是快速打开手机的录像,而不是打开 CATALK。

就这一句话,快捷入口被砍掉了,重点也跟着挪到另一件事上:把相册里已经拍好的视频处理得更好用。

做不做只是结论,为什么做、为什么不做才是方向。
做不做只是结论,为什么做、为什么不做才是方向。

一个需求为什么做、为什么不做,一定要想清楚再开工。这个理由,就是产品的方向。

4
Step 4

第三步:让 AI 给方案,你只给方向

方向定了,接下来是具体怎么做。新手在这里容易走两个极端:

  • 甩手掌柜:直接让 AI 改代码,不满意再改,越改越乱;
  • 事必躬亲:每个细节都自己定,按钮多大、什么颜色、文字怎么写,想到最后自己都整不会了。
新手容易走两个极端:甩手掌柜(让 AI 改代码,不满意再改,越改越乱)和事必躬亲(每个细节都自己定)。
新手容易走两个极端:甩手掌柜(让 AI 改代码,不满意再改,越改越乱)和事必躬亲(每个细节都自己定)。

根据作者的经验,细节问题,AI 往往想得比人更全面;但产品方向,只有你自己知道。正确的分工是:你给方向,AI 推细节。

细节 → AI 往往想得比我全;方向 → 只有我自己知道;分工:我给方向,AI 推细节。
细节 → AI 往往想得比我全;方向 → 只有我自己知道;分工:我给方向,AI 推细节。

同一个方向,出三个方案

作者的做法是:只说清楚要做个什么东西、大概包含哪些内容,不让 AI 直接动手,而是在同一个方向上给出三个不同的方案,每个方案都写清楚为什么这么设计。

三个摆在一起,好坏一比就出来了,你自己到底想要什么也会跟着想清楚;每个方案都带着理由,选的时候就知道自己在取舍什么。

三个方案摆在一起,每个都写清「为什么这么设计」,一比就知道自己想要什么。
三个方案摆在一起,每个都写清「为什么这么设计」,一比就知道自己想要什么。

例子:录音流程第 ③ 步「补充信息」

2.1 时,作者想把记录流程的第三步从「写一个场景」改成「补充更多信息」。跟 AI 说的只是一个方向:这一步要放封面、视频片段和场景,页面具体怎么排拿不准,先出几个设计稿对比一下,不要急着改。

我只给方向:放封面、视频片段、场景;怎么排我拿不准,先出几个设计稿对比。
我只给方向:放封面、视频片段、场景;怎么排我拿不准,先出几个设计稿对比。

AI 给了三个方案:

方案好处问题
① 一页平铺:封面、视频、场景从上到下全摆出来一眼看全太长,小屏手机按钮被挤出去
② 封面为主:用大相框放封面像在手账里贴了张照片封面存在感太强,这是录音记录,不是图片记录
③ 简洁行 + 场景:封面和视频各收成一行,点进去再改和现在的页面交互最接近用户可能不知道封面能换
设计稿 v1.html 里的三个方案对比:一页平铺、封面为主、简洁行 + 场景,各自的好处和问题。
设计稿 v1.html 里的三个方案对比:一页平铺、封面为主、简洁行 + 场景,各自的好处和问题。

除了三个方案,AI 还在下面列了一张表,把这个页面要面对的问题都抛了出来:没有视频的记录怎么办?点场景快捷词会不会把已经写好的字覆盖掉?每个方案分别怎么解决?

v1.html「抛出的问题」:没有视频的记录,「从视频截一帧」怎么办?场景快捷词会不会覆盖已经写好的字?右栏是方案里的解法。
v1.html「抛出的问题」:没有视频的记录,「从视频截一帧」怎么办?场景快捷词会不会覆盖已经写好的字?右栏是方案里的解法。

这些细节作者一开始根本没想到,但现在不用自己去想,只要看,然后选。

提示词②:让 AI 出三个方案

我想做(一个什么功能 / 页面),它大概要包含:(列出几项内容)。
先不要写代码。在这个方向上给我出 3 个不同的方案,做成能直接看的设计稿HTML,放在一起对比。
每个方案写清楚:为什么这么设计、好处是什么、代价是什么。
最后列出这个功能要面对的问题,每个方案分别怎么解决这个问题

这样既能让你参与到产品设计里,又不用从头去想按钮多大、颜色放什么、文字怎么写。方向和最后拍板的权力在你手上,细节由 AI 补全。

5
Step 5

第四步:选择并修正,反馈要具体

AI 出了几套方案,接下来要选。注意:这时的方案代表的是一种方向,而不是最终定稿。所以不要直接跟 AI 说「就按这个来」。

正确的做法分两步:

  1. 第一轮先选方向,而不是选成品。选一个符合需求、看着顺眼的,它可能有些小问题;
  2. 之后让 AI 多改几轮。每一轮只改一两处,说清楚改哪里、改成什么样、为什么改。一定要精准反馈。

例子:信息补充页

AI 第一版给了三套组合,作者选中其中一套布局。布局没问题,但信息太多,显得很拥挤。于是作者指出:提示文字有点多,有一句话出现了两次,一处在大标题下面,一处在输入框里,只要保留一个地方就行。

同一句「写一句当时的情况」出现了两次:大标题下面一次,输入框里一次。
同一句「写一句当时的情况」出现了两次:大标题下面一次,输入框里一次。

之后每一轮,作者都只说一两个问题,比如「标题挪到卡片上方」「字数放进输入框里」。前后一共改了 6 版才定稿。

每一轮只改一两处:标题挪到卡片上方、字数放进输入框里,前后 6 版才定稿。
每一轮只改一两处:标题挪到卡片上方、字数放进输入框里,前后 6 版才定稿。

例子:底部菜单「看着有点乱」

底部更换封面的菜单,三个选项明明已经居中对齐,看着还是有点乱。这时不能跟 AI 说「给我改整齐一点」,而是要找到核心原因:文字长度不一样。让它都改成四个字的选项就可以了。

更换封面菜单:改之前 4 / 3 / 6 字看着乱,v6 定稿改成「从相册选 / 拍张照片 / 视频截取」都是 4 个字。
更换封面菜单:改之前 4 / 3 / 6 字看着乱,v6 定稿改成「从相册选 / 拍张照片 / 视频截取」都是 4 个字。

反馈越具体,AI 越容易做出你想要的结果。

6
Step 6

第五步:落入文档,靠 PRD 驱动开发

方案定了,很多人就直接说「那你开始写代码吧」。刚定下来的东西全留在聊天记录里,换一个窗口或者多聊几轮,AI 就开始混乱。

正确的做法是:定下来一条,就让 AI 写进 PRD 文档,再照着 PRD 去开发。靠文档驱动 AI 开发,把记忆留在文档里。

提示词③:先写进 PRD

把刚才定下来的写进 PRD,每条都写上为什么这么定,不做的也写上原因。
先不要写代码,先改完文档和我确认。

PRD 就是产品需求文档,是一份跟着产品版本走的动态文档。比如前面那条「不论视频长短,流程都一样」的决定,就以日期加理由的形式写在 CATALK 的 PRD 里:

PRD_v2.0.md §11 O15:「决定(2026-10-13):不论视频长短,流程都一样」;换个窗口,也和最初讨论的一致。
PRD_v2.0.md §11 O15:「决定(2026-10-13):不论视频长短,流程都一样」;换个窗口,也和最初讨论的一致。

这样,所有迭代讨论在本地都有一个固定的位置。尤其是做较大改动、需要跨对话工作时,也能确保和最初讨论出来的东西一致。为什么要把讨论落成文档,可以看 AI 的记忆该存在文档里,而不是对话里。

7
Step 7

第六步:开发和测试,写清没验证的

到了第六步,才轮到 AI 写代码。但千万不要 AI 说「写完了」就当功能做完了,那只代表代码写完了。功能是不是真的能用,得靠测试。

所以开发时,作者让 AI 一边写一边测,做完再把还没验证的地方列出来,写进项目的进度文件。

CATALK 开发时,AI 做了一套完整的测试用例,让程序把页面自动点一遍,每次开发新功能都跑一次全流程测试。比如 App 会自己合成一段 90 秒的测试视频,在 12 秒、47 秒、75 秒各放一声猫叫,用来走真实的选视频路径。

边写边测 → 列出没验证的 → 写进进度文件;UI 测试里 App 自己合成 90 秒测试视频,程序自己在点。
边写边测 → 列出没验证的 → 写进进度文件;UI 测试里 App 自己合成 90 秒测试视频,程序自己在点。

收尾时,AI 还列了一份还没验证的清单:自动测试做不到、需要在真机上用几分钟真实视频测一遍的项目。这些都写进了项目说明,等作者去测。

到这一步,一次版本迭代的所有步骤才算告一段落,才是一次真正的有效迭代。全流程测试的具体做法,可以看 让 AI 当测试工程师。

8
Step 8

总结:前五步都不写代码

再过一遍六步:

一次有效的迭代再过一遍:想法先进需求池;定目标,决定带理由;你给方向,拿不准就比稿;先选方向,一处处改;写进文档,默认值单独确认;边写边测,写清没验证的。
一次有效的迭代再过一遍:想法先进需求池;定目标,决定带理由;你给方向,拿不准就比稿;先选方向,一处处改;写进文档,默认值单独确认;边写边测,写清没验证的。
步骤要点
1. 发现需求先别急着做,统一记进需求池 TODO.md
2. 提出方向确定这一版的目标,再从池子里挑;每个决定都带上做或不做的理由
3. 让 AI 给方案你给方向,AI 推细节;拿不准就让它出三个方案比稿
4. 选择并修正先选方向,再一处一处改细节,反馈要具体
5. 落入文档定下来的写进 PRD,没讨论过的默认值单独确认
6. 开发和测试边写边测,把没验证的问题写清楚

不要觉得麻烦。你会发现前五步都不是在写代码,而是在思考和留档,为开发做准备。

一句话做个小 demo、一个简单单页,没有问题。但如果想做一个真正能用的产品,就得把想法细化成方案,把方案做成文档,再用文档推动 AI 开发。这样做出来的东西,每一处都经过你的思考,有明确的想法,也能追溯回去。

每一步里「人」该做什么判断,可以接着看 AI 这么强了,人还能干什么。

FAQ · 常见问题
Vibe Coding 做 App,一次有效迭代分哪几步?

六步:发现需求(先进需求池)、提出方向(按版本目标挑,每个决定带理由)、让 AI 给方案(同一方向出三个方案比稿)、选择并修正(先选方向,再精准反馈逐轮修改)、落入文档(写进 PRD)、开发和测试(边写边测,列出没验证的)。

想到一个新点子,要不要马上让 AI 去做?

先不要。让 AI 把它记进 TODO 的需求池,写清楚是什么问题、在哪发现的、哪天记的,先不改代码。开新版本时再按版本目标从池子里挑。

怎么让 AI 出设计方案,自己又能把握方向?

只说清楚要做什么、包含哪些内容,让 AI 先不写代码,在同一方向上出 3 个能直接看的 HTML 设计稿,每个写清为什么这么设计、好处和代价,并列出要面对的问题和各方案的解法。你负责看和选。

给 AI 反馈修改意见时要注意什么?

每一轮只改一两处,说清楚改哪里、改成什么样、为什么改。不要说「改整齐一点」这种模糊要求,要先找到核心原因,比如菜单看着乱是因为选项字数不一样。

1 / 8