ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Vibe Coding 最佳实践:从自然语言到可交付应用的完整工作流

Vibe Coding 最佳实践:从自然语言到可交付应用的完整工作流

Vibe Coding 最佳实践:从自然语言到可交付应用的完整工作流

一、Vibe Coding 是什么(以及它不是什么)

Vibe Coding(氛围编程)由 Andrej Karpathy 在 2025 年初提出,是一种用自然语言驱动 AI 编程助手生成、修改和验证软件的开发方式。核心理念:开发者负责方向把控与创意决策,AI 负责落地执行与细节实现。就像驾驶一辆智能汽车——你设定目的地、选择路线,车辆自动处理油门、刹车和转向。

要理解它的革新性,对比三种开发模式:传统开发模式中,人主导架构、手写代码、逐行调试,开发者是全面的"执行者";传统 AI 辅助模式中,人写骨架、AI 补单行代码,开发者是"主导者";原生 Vibe Coding 模式中,开发者做决策者、验收者,AI 承担全部编码工作,开发者是"指挥者"。

但 Vibe Coding 不是偷懒路线,也不意味着可以不理解代码。它的技巧不是编码,而是清晰地传达意图,让 AI 能够执行。你仍然要读 AI 产出、测试并验证其是否正确、安全且可维护。一句话总结:Vibe Coding 把门槛从"先记住所有语法"改成"先说清楚你要什么,并能判断结果对不对"。

二、基础工作流:一个可重复的循环

Vibe Coding 的核心循环:描述 → 生成 → 检查 → 迭代。四个动作缺一不可,只要少了"检查",Vibe Coding 就容易停留在 Demo。

第一步,清晰描述目标。先解释代码应该做什么,而不是如何写它。含糊的目标会导致通用或错误的代码。一个好的需求描述应该包含:项目目标(一句话说清解决什么问题)、核心功能(3-5 个功能点,不要超过 5 个)、技术栈偏好(指定前端框架、后端语言,不确定可以让 AI 推荐)、UI 风格参考(描述期望的视觉风格)、验收标准(项目完成的判定标准)。

第二步,生成初始代码。让 AI 产出第一版草稿,把它视为起点而非成品,预期会存在粗糙之处和缺失的边界情况。

第三步,运行并测试代码。在真实环境中执行代码,在初始代码确实能跑之前不要继续下一步。如果它一开始就崩溃,先修复问题再推进。

第四步,迭代完善。用自然语言描述修改,每个修改是单独一条消息:“类别下拉菜单应该包含这些类别”“把配色方案从绿色改成蓝色”“删除按钮在手机上太小了,做大一点并添加确认对话框”。检查结果、发送下一条指令,直到结果符合预期。

三、写好 Prompt 的五条黄金法则

法则一:明确角色和约束。在 Prompt 开头明确 AI 的角色:“你是一个拥有 10 年经验的 React 全栈工程师,请用 TypeScript 和 Tailwind CSS 实现以下功能”,同时列出技术约束:“不允许使用 any 类型”“所有 API 调用使用 React Query 管理”。

法则二:提供足够的上下文。使用 @ 符号引用相关文件,让 AI 理解完整的项目上下文。@codebase 让 AI 理解整个项目结构,@file 引入特定文件,@docs 引入文档。上下文越充分,AI 生成的代码越准确。

法则三:分步执行,逐步验证。不要一次性描述所有需求,先让 AI 生成项目骨架,确认无误后再生成具体功能代码。每步执行后都要验证结果,确保上一步正确再进行下一步。分步策略可以避免 AI 生成大量错误代码后难以修正。

法则四:善用错误反馈。当 AI 生成的代码出错时,不要手动修复,而是把完整的错误信息(错误信息原文、出错的代码位置、期望的正确行为)反馈给 AI,让它自行修复。“我收到了这个错误,请修复它,并用简单的语言解释哪里出了问题”——AI 在收到精准的错误反馈后,修复成功率远高于模糊描述。

法则五:建立项目规范文件。在项目根目录创建 .cursorrules 或类似的项目规范文件,定义代码风格、技术栈约束、必须遵守的规则,这个文件会自动被 AI 读取,确保生成的代码始终符合项目规范。

四、效率翻倍的进阶技巧

4.1 降低 Token 消耗

Token 是 AI 编程的"燃料"。策略一:分段对话——项目搭建用单独对话,每个独立功能分别开新对话,Bug 修复单独处理。策略二:智能引用——不要无脑全量引用文件,只 @ 引用与当前任务相关的文件或代码行。策略三:结构化提问——把相似问题合并处理,不要零散提问:“请统一优化登录页面的视觉风格:按钮颜色、输入框圆角和整体间距”,而不是三条零散指令。策略四:利用自定义指令固化重复场景——对日报生成、代码审查等高频任务创建自定义指令,一个精心设计的指令可以把 15 分钟的工作缩短到 30 秒。

4.2 用好规划模式(Plan Mode)

Plan Mode 是 Vibe Coding 中最容易被忽视却最重要的功能。想象你让一个建筑师直接开始砌墙,却不给他看设计图纸——结果可想而知。最佳实践:在 Plan Mode 中描述需求,让 AI 给出实现方案;审查方案,确认没有问题后再切换到编码模式;对于复杂功能,反复在 Plan Mode 中迭代方案直到满意。很多平台(如 v0、Tempo Labs)在生成代码前会先展示页面、实体和数据的拆解,这个规划步骤防止了不连贯的结果。

4.3 让验证成为任务的一部分

让 AI 运行构建、检查链接、抓取本地 HTML、确认页面是否返回 200。你要关注的不是它说"应该可以",而是它拿出了什么证据:构建是否通过、页面是否正常、目标文案是否出现。最后让 AI 总结改了什么、如何验证、还有哪些未处理风险,这样每次 Vibe Coding 都会留下可复盘的工程记录。

五、从个人到团队:Spec 驱动开发(SDD)

当 Vibe Coding 从个人实践走向团队协作,规范就变得至关重要。Vibe Coding 本身没有问题,问题是缺少流程约束——流水线是给 Vibe 装上安全带,不是让开发者停止 Vibe。

Spec-Driven Development(SDD,规范驱动开发)的核心:先形成规范,再让人和 AI 围绕同一份规范设计、实施和验证。典型制品链:需求探索 → proposal(为什么做、做什么、不做什么)→ specs(系统必须满足哪些行为和场景)→ design(技术方案与风险处理)→ tasks(修改顺序与验证方式)→ code + tests(实现与验证证据)→ archive(增量规范合并为新的系统基线)。

Spec 不是泛泛的需求文档,而是一组可以指导实现、支持评审、最终被验证的约束。关键场景可以使用 EARS 语法:“WHEN 输入文件不包含可提取文本,但包含有效扫描图像 THEN 系统 SHALL 启用 OCR 解析路径 AND 返回与普通文档一致的数据结构 AND 不改变普通文档解析接口的既有行为。”

一个真实的翻车案例:团队用 Vibe Coding 增强一个 Agent 项目解析扫描件,每轮修改后 AI 都给出很强的确定性反馈,结果是扫描件能解析了,但 QA 发现其他原本正常的接口被改坏了;继续让 AI 修复,受影响的接口反而更多,最终只能放弃整个分支。失败不是因为 AI 不会写代码,而是研发过程缺少规范约束:修改前没有分析共享依赖和影响范围、实施中没用任务清单限制修改范围、实施后只验证了新增场景没覆盖关联接口的回归。SDD 正是解决这个问题:先探索相关模块和调用链、把目标和非目标写成可验证的规范、按任务清单实施、验证新增场景同时回归关联接口。

六、Vibe Coding 的局限性与应对策略

复杂业务逻辑的理解力不足:AI 可以生成符合语法规范的代码,但对复杂业务逻辑(金融交易规则、医疗诊断流程)的理解可能不准确。应对:复杂业务逻辑由开发者亲自设计,AI 负责实现——开发者做"架构师",AI 做"程序员"。

安全漏洞的潜在风险:AI 生成的代码可能包含安全漏洞(SQL 注入、XSS、敏感信息泄露)。应对:对涉及用户输入、数据库操作、身份认证的代码进行安全审查,使用安全扫描工具自动化检测。API 密钥泄露是高频事故,始终用环境变量管理,不要把真实凭据粘贴到聊天提示中。

代码可维护性问题:AI 生成的代码可能在功能上正确,但结构上不够优雅。应对:定期重构,建立统一标准(linter、formatter、命名规范),审查所有 AI 生成内容。

产品思维的缺失:这是 Vibe Coding 最大的隐形门槛。统计显示超 78% 的 Vibe Coding 初学者能完成"本地跑通",但仅 22% 成功实现"真实用户可用"——中间那堵墙就是产品思维。代码只是产品的一部分,部署、运营、迭代同样重要。

七、常见误区与避坑指南

一次让 AI 完成所有功能——应一次只做一个功能模块,逐步迭代。全量引用大文件——只 @ 引用相关行或函数。不审查 AI 的代码直接使用——理解后再使用,对关键逻辑进行审查。把对话历史混在一起——不同功能分不同的对话窗口。抱怨 AI 不够聪明——反思自己的描述是否足够明确。未经审查就信任 AI 输出——如果你连粘贴进去的代码都不读一遍,就不会发现它是否加入了不必要的内容。过快地过度构建——在验证更小的组件之前就让 AI 构建庞大系统,会生成一团无法调试的乱麻。忽略边界情况——AI 生成的代码往往只关注理想输入,要手动提示处理空表单、网络断开、负数输入等场景。

八、写在最后

Vibe Coding 不是魔法,而是一项需要学习和练习的技能。就像骑自行车——刚开始可能摇摇晃晃,但一旦掌握了平衡,你就会发现它带来的效率和乐趣远超想象。它不是要取代开发者,而是改变开发者的工作方式:那些能够适应变化、主动拥抱 AI 工具的开发者将获得更大的竞争优势。真正的 Vibe Coding 高手,不是最会写 Prompt 的人,而是最懂得如何与 AI 高效协作的人。关键在于:保持好奇心,持续迭代你的工作流,让 AI 成为你编程路上的得力助手,而不是替代者。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进