非技术人也能看懂:AI 编程从原型到上线的完整流程
Vibe Coding正以惊人的速度重塑开发者的工作流程,但AI助手的局限性也让项目陷入'修复同一bug'的恶性循环。本文从三层架构设计到AI协同工作流,揭秘如何通过规划-评审-修正的闭环体系,将失败率降低90%的实战方法论。从异常处理到安全审计,一套让AI编程真正可落地的完整解决方案正在浮出水面。

我从2025年开始接触vibe coding,有成功也有失败。第一次搭建出属于自己的页面时很震撼,但永远陷在某个bug里解决不了的挫败感也很强。
所以总结复盘了这些使用经验,希望能给你带来一些帮助。
01 工具的对比与选择
工具大致分为两类:
- 全包式应用:帮你搞定一切(托管、数据库、部署)
- AI 助手:给你更多控制权,但需要你自己管理基础设施
如果你刚入门,从全包式应用开始。当你需要更多控制权,或碰到工具上限时,再转向 AI 助手。
我尝试过 Replit、Lovable、Codex 和 Claude Code。Claude Code 是我目前的首选。
但小项目我更喜欢Lovable(比如宠物的健康追踪管理),不用操心 UX,界面又好看。
Vibe Coding工具

AI 编程智能体

VS Code、Windsurf、Cursor 这类集成开发环境(IDE)我没有列入清单,不过它们很多都内置了自己的编码助手。Cognition 也做了编码助手 Devin,但感觉也不太适合放在这里对比。
也没有包含只做设计原型的工具,因为今天我们的重点是搭建应用。
02 会在哪里出问题
选好工具之后,就可以开始干活了。
然而大多数项目就是从这里开始跑偏的。如果不清楚自己想要什么,或者频繁改主意,最后就会得到一堆混乱的代码。
Vibe Coding的恶性循环是:总在修复同一个bug
我们在过程中经常会发现,你报了bug,AI说修好了,但其实没有。
无论怎么说、怎么做,都很难真正修复。让人非常崩溃。

这类问题通常源于几个原因:
- 你对想要的东西描述不够清晰
- 频繁改主意,代码里全是这些反复横跳的痕迹
- 中途切换了技术栈,代码不同部分用了不同技术(通常也是需求频繁变更导致的)
要避免这种情况,你需要稍微理解软件是如何运作的。软件有三层:
- 数据层:数据存储的地方
- 控制层:软件运行的逻辑
- 视图层:你在界面上看到的内容
大部分问题,都出在这三层不同步。
当你最开始描述需求时,它会对需要存什么数据、逻辑如何运行、界面显示什么做出假设。
改主意时,AI必须记得同时更新这三层。

如果只做简单的界面修改,可能只影响视图层,AI通常能直接处理好。
但如果是复杂的界面改动 —— 比如想改变排序方式 —— 可能会影响全部三层。可能需要修改数据存储方式、数据获取时机,才能改变界面排序。
这就是容易出错的地方。当AI忘记跨三层同步修改,或是修改不一致时,就会出现难以解决的 bug。
前面提到给宠物做的健康追踪管理就是这样。随着不断迭代,需求一直在变。我想优化界面让输入更方便,但有些优化意味着数据存储方式也要改。改得越多,应用里的隐蔽 bug 就越多。
而且问题会不断累积。助手工作时,会倾向于遵循它看到的代码模式。如果它看到的是过时的视图层,在更新数据层时就可能做出错误决策。
这就是打破原有的项目重头再来的原因。第二次描述应用时,我已经清楚自己想要什么,需求没有变。Lovable 才能正确搭建三层结构,我才能得到完全符合预期的结果。
03 规划 – 评审 – 修正
先想清楚,再开始工作。
每个优秀的产品经理都知道,一个想法在理论上听起来再好,一旦开始细化规格,问题就全出来了。细节才是成败关键。
用vibe coding时,如果我们边写代码边细化细节,成本很高 —— 就算是AI 助手写也一样。而且很容易产生 bug。
AI会犯错。每次你改主意,都会带来一点技术债 —— 旧想法的痕迹还留在代码里。这些技术债会迷惑后续处理,导致恶性循环,bug 越来越多。
永远从规划开始,在规划方案上迭代。
有时只有一个模糊想法,要和AI一起把它变具体;有时我想法很明确,只需要写下来。无论哪种方式,每一次都要从规划开始。
不是PRD或者技术文档,而是小批量、迭代式的方式工作,不是传统大型项目那套流程。
系统性学习PMP的敏捷流程对个人小项目真的很有用。
实操案例
比如做一个回答产品探索相关问题的知识库。我对它有宏大愿景,希望它成为全能的coach。但需要时间一步步实现。
第一个目标,是能访问我所有写过的内容,这样它就能回答那些我已经有文字答案的常见问题。但我不知道怎么实现。于是找 Claude 帮忙,一起制定方案。
Claude 梳理出了端到端的实现方式,解释了很多我不懂的东西,帮我选择服务商(比如向量数据库和嵌入 API)。在讨论中,我不断补充和细化需求。我们用 Markdown 一起迭代,而不是用代码。
方案成熟后,也不是立刻开始写代码。而是把方案交给AI评审。
在和 Claude 的初始对话中,Claude 会学到我的偏好(这是好事),也会学到我的偏见(这是坏事),它会继承我的思维盲区。我们俩都很可能漏掉关键细节,这些细节在实现时会引发问题。
方案评审的任务,就是用全新视角评估方案。
用来验证:
- 方案是否符合项目的编码规范和架构
- 没有过度设计
- 找出逻辑缺陷、思考漏洞、思维盲区,或任何值得注意的问题
不修复方案,只反馈问题。
然后我把评审的意见发给规划助手,一起整合有效反馈。我们重复这个循环,直到三方都满意:我、规划、方案评审。
这个循环对避免 “死活修不好 bug” 的恶性循环至关重要。从一份扎实的方案开始,意味着我们不是在代码里思考,而是在文档里思考,只有确定至少第一个小模块要做什么时,才开始code。
用AI做规划时,记住这些方法:
- 频繁开启新对话:对话越长,AI表现越差,这叫 “上下文腐烂”。我常分块规划:先做整体概览,理解端到端流程,写成文档,然后开新对话。下一轮对话深入某个模块,完成后清空上下文,再做下一部分。这样能保证助手始终输出高质量结果。
- 不只依赖AI的训练数据:我经常让第二个AI调研我们要做的东西,研究最佳实践,找出人们最常犯的错误,再把报告交给规划助手。
- 质疑AI的建议:如果某条建议听起来不对劲,或你不确定,让它澄清甚至解释理由。你不一定是专家,但你应该理解选择,并确保走在正确的路上。
- 让AI解释所有你不懂的东西:碰到不熟悉、不理解的内容,直接让AI解释。如果还不懂,告诉它哪里困惑,让它再讲一遍。
04 实现 – 评审 – 修正
方案准备好后,我会开启全新对话,重置上下文窗口。让新AI按方案实现功能。
如果规划做得好,AI应该能独立完成实现。完成后,它通常会让我测试改动。但我不会立刻测试。相反,我要让另一个AI检查编码的工作。
这就是AI 代码评审的作用。AI 代码评审会阅读方案、浏览代码库、评估改动,查找:
- bug
- 重复代码
- 不必要的新模式或技术
- 过度设计
AI 代码评审的核心目标,就是帮我们避开恶性循环,确保编码遵循良好的软件工程实践。
我会让代码评审重点关注三块:
- 异常处理
- 测试覆盖率
- 安全性
刚开始做时,我对这三块一窍不通,但一路学到了很多。这里我简单讲一下技巧。
异常处理
简单说,就是出问题时代码该如何响应。比如代码调用 API 时,如果出现以下情况该怎么办:
- API 不可用
- 没有访问 API 的正确权限
- 得到意料之外的响应
我们经常只为 “理想情况” 写代码 —— 一切顺利的场景。异常处理,就是列出所有可能出错的情况,以及每种情况该如何处理。
你不需要懂代码里怎么写异常处理,AI可以搞定。但你应该问:
- 这一步可能出什么问题?
- 每种情况我们想怎么处理?
然后和AI讨论这些决策。我会明确让代码评审AI检查异常处理的缺失,标出覆盖不足的地方。如果不确定怎么修复,就和编码AI讨论。关键是让专家帮你评审 —— 这就是代码评审助手的价值。
测试覆盖率
代码评审还会检查测试:
- 有没有完整的单元测试和集成测试?
- 集成测试是否覆盖所有真实使用场景?
如果你不熟悉自动化测试,那就选:
- 单元测试:单独测试代码片段(比如这个函数是否按预期运行)
- 集成测试:测试所有部分如何协同工作
你不需要知道怎么写,但如果你想让代码稳定运行,就必须告诉 Claude 写出合适的测试。
Claude 很会写单元测试,但不太会写正确的单元测试,所以需要代码评审AI检查。Claude 几乎从不记得写集成测试,所以我会让评审AI专门检查这两项。
对于集成测试,让代码评审AI列出代码所有可能的使用方式,然后根据使用场景决定哪些需要写集成测试。
安全性
早期工具在安全方面做得很差,好在现在很多都大幅改善了。很多常用的工具都有自带的安全检查。
我让 Claude 帮我给代码评审写安全检查规则,它会检查各种常见安全漏洞:
- 依赖漏洞:过时包或虚构包名
- 代码中的密钥:不暴露 API key 或其他凭证
- IAM 角色遵循最小权限原则
输入验证
- 日志规范:不记录敏感数据
- 跨域资源共享(CORS)配置
你不需要懂这些是什么。关键是让编码AI帮你确保应用安全,并让代码评审AI验证。
和方案评审一样,代码评审AI不修复问题,只写出问题报告。我审阅后,把报告发给编码AI。
我以前会让编码助手直接调用评审助手,让它们自行迭代,但更多的时候是无休止地修复本不需要修的东西。所以我们人力还是得保持在循环中。
和规划一样,代码直到三方都满意才算完成:我、编码、代码评审。
代码评审帮我发现了无数 bug。这一步看起来很繁琐,尤其当代码表面上运行正常时。但长期来看,它会帮你节省大量时间,不用走到某个失败临界点然后从0开始。
05 出问题时如何恢复
就算你严格遵循规划 – 评审 – 修正、实现 – 评审 – 修正循环,问题仍然会出现。记住,AI会犯错。
但别慌。大概率另一个AI能帮你解决。当你碰到编码AI死活修不好的 bug 时,别让它继续瞎试,那样只会引入更多 bug。
相反:
- 开新对话
- 让新AI看问题
- 明确告诉它:只诊断并反馈,不要直接修复
最后一点很重要,不能让它随便乱改代码。
如果是特别难的 bug,我可能会开两个甚至三个AI,用完全相同的提示词,看它们是否得出同一个诊断结论。
只有确信找到真正原因后,才开始写代码。
人们很容易想当然地判断问题根源,其实根本不对。如果让助手直接开始 “修复”,它会乱改很多不需要改的地方,反而带来更多 bug。
永远把诊断和修复分开。
从原型到生产,关键不在 “快”,而在稳。清晰的需求、规范的架构、严格的代码评审、理性的问题排查,这些传统编程的经验,在 AI 时代依然有效,甚至更加重要。
与其在混乱里反复试错,不如用一套成熟流程避开 “恶性循环”,让 AI 真正帮我们把想法落地成可用、可靠、可上线的产品。
作者:朱莉的产品笔记 公众号:朱莉的产品笔记
本文由 @朱莉的产品笔记 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
- 目前还没评论,等你发挥!

起点课堂会员权益




