大家好,我是程序员鱼皮。随着 AI 的发展,大家有没有听说过一个词?叫 Vibe Coding
。
几个月前我就听说过这个词,当时还没怎么在意。但最近这玩意已经越来越火了,甚至火出了程序员圈子。
我身边的同事们也在讨论这个词,甚至我们的产品经理口出狂言:"Vibe Coding 太牛比了,我一个人顶十个人!感觉整个技术部都不需要了!"
好家伙,Vibe Coding 到底是什么神仙技术?今天就来跟大家好好聊聊:
-
什么是 Vibe Coding?
-
VIbe Coding 的问题
-
Vibe Coding 的技巧
什么是 Vibe Coding?
Vibe Coding 的概念最早是由 OpenAI 联合创始人 Andrej Karpathy 在今年 2 月提出的。他的原话是这样的:
大概的意思就是:AI 太强了,现在我开发项目都不能算是编程了,随便说点儿话,调用 AI,然后复制粘贴,项目就能搞定。
简单来说,Vibe Coding 就是用 AI 来写代码 ,也叫氛围编程。
专家总是这样,喜欢造术语来把一个本来很好理解的事情复杂化。那我用 AI 写论文就叫 Vibe Writing,AI 画图就叫 Vibe Drawing,AI 做 PPT 就叫 Vibe PPTing。
那为什么要叫氛围编程呢?说说我的理解。
从解决实际问题来看,以前必须有专业知识才能写代码开发产品,现在什么都不会,照样能完成,甚至无论是效率还是质量都领先很多程序员。
从现象来看,以前我发现技术同学们写代码一边敲键盘一边眉头紧皱,遇到 bug 后要在网上搜半天;现在呢,基本就盯着编辑器,隔几分钟敲几下(和 AI 对话),眉头舒展,有时甚至还会突然激动起来!
氛围编程,诚不欺我。 现在不仅我们的开发氛围变了,整个办公室的氛围都不一样了,开发同学讨论问题时,产品运营的同事都可以来指点下江山。
可以说,Vibe Coding 是一场从 "编写代码" 到 "描述需求" 的变革。相当于雇了一个有经验的开发者,跟结对编程类似,只不过跟你一起写代码的是 AI。
随着 Vibe Coding 的进化,我们解决问题的思路也更开阔了,很多工作我都会想着能不能通过 AI 生成网站来解决?比如展示 PPT、做个小工具、做原型图、画架构图、做个动画演示网站等等。
Vibe Coding 的问题
虽然 Vibe Coding 确实很爽,但目前也存在不少问题。
首先很明显的一个问题是,现在很多 AI 编程工具生成的网站界面都是淡紫色的,非常同质化,不知道大家有没有发现?
还有个更麻烦的问题,就是 AI 生成的代码不可控。AI 目前更多地还是用来生成小项目,如果你在有点儿体量的代码库下使用 AI,出 Bug 时,就很可能出现调试困难的 死局 ------ 你既看不懂 AI 生成的代码,又舍不得放弃这些代码。之前在 AI 社群里,就看到有开发者吐槽同事用 AI 把项目改崩了:
此外,长期使用 Vibe Coding 还可能会让程序员失去基本的编程技能。这两天 Cursor 开始封锁中国区的大模型使用,很多同学表示:"离开了 AI,我已经不会写代码了!"
鱼皮:俺也一样。。。
Vibe Coding 的技巧
不过这些问题并不能阻挡我使用 AI 编程来摸鱼的野心,我自己也摸索了一些 Vibe Coding 的经验技巧,分享给大家。
我认为 Vibe Coding 的效果 = 人的经验 + 提示词 + AI 大模型 + 工具能力 。
可以从这 4 个角度来优化 Vibe Coding 的效果。
1、AI 大模型
AI 大模型相当于 AI 的大脑,决定了 AI 理解问题的能力,这个没什么好说的,尽量选推理能力和代码能力较强的大模型。目前个人体验下来,Claude 4 还是效果最好的 ,新出的 Kimi K2 也还不错。
2、工具
AI 工具的选择也很重要,这里的工具包含 2 部分:AI 编程工具 + 提供给 AI 调用的工具(Tool Calling)。
先说说 AI 编程工具,在线网站生成代码并不适合 vibe coding,IDE 里才是足够沉浸,目前各大巨头也在卷 IDE。像 Cursor、Claude Code、还有谷歌最新推出的 Gemini CLI 都还不错,不过我个人是 Cursor 的忠实爱好者,它检索代码库的能力真的很强 ,生成出来的代码风格也很符合开发规范。
以前我用 JetBrains IDEA 开发后端、WebStorm 开发前端,现在很多项目我都直接用 Cursor 打开了,甚至开发 Java 大项目时,我打开 IDEA 的同时,还会额外打开一个 Cursor,专门用于 Vibe Coding。
求求了,JetBrains 自带的 AI 助手什么时候再优化下,对于我们程序员来说,在自己熟悉的 IDE 内用 AI 感觉才是真的起飞了。
3、提示词
提示词的质量直接决定了生成代码的质量。
当然,能写出提示词本身也是依靠人的经验,我把提示词分为 3 个级别:
🍏 青铜:只告诉 AI 要做什么。比如 "帮我写一个登录页面"。
🪙 白银:告诉 AI 要做什么,并且给出一定的要求。比如 "用 React + TypeScript 写一个登录页面,要有表单验证"。想写出这样的提示词并不难,你只需要知道什么技术是主流的,听说过某个技术名词就够了。
🟡 黄金:不仅告诉 AI 要做什么,还告诉 AI 怎么做,让它负责执行就好。比如 "用 React Hook Form 实现表单验证,密码要求包含大小写字母和数字,登录成功后跳转到首页,失败时可以用 message 组件显示错误信息"。或者是改 Bug 时,你知道这个 Bug 是由于什么导致的,就可以教 AI 做事了。
这种方式 AI 输出的准确度会更高。当然,能做到这点本身需要丰富的开发经验和技术广度,这也是程序员目前不会被 AI 淘汰的理由。
要想让 AI 有最准确的输出结果,就要努力做到黄金级别,告诉 AI:做什么?怎么做?做到什么程度?
不过写提示词这件事本身,也可以交给 AI 来实现,只需要多问一句:
我想利用 AI 开发登录网站,请先帮我优化提示词,要求完善需求分析、方案设计、技术选型、实现关键、测试方法等。
除了黄金级别外,还有隐藏的钻石级别提示词 ------ 将 详细的方案文档 交给 AI 来生成代码。
亚马逊最近发布的 Kiro IDE 中,除了 Vibe Coding 模式外,还提供了 Spec 专业模式 。如果使用专业模式,会需要你先编写需求文档和设计文档,然后才能生成代码。这其实是遵循了标准的工程思维,也是 AI 开发企业大项目的关键。
4、人的经验
还有几个 Vibe Coding 经验分享:
1)建议每次 AI 生成代码后,都提交一次代码 。因为项目越复杂,AI 越容易犯错,当你发现 AI 思路错了时,要及时回滚代码,并修改提示词尝试其他方向,别老想着一条路走到黑。
2)如果要生成大项目,需要让 AI 采用 模块化设计 ,让项目能够线性扩展。
比如做博客网站,刚开始只有查看主页的文章列表功能,之后考虑添加搜索文章功能,这两个功能的相似之处在于都需要展示文章列表,那么就可以让 AI 把文章列表抽象出一个组件。不仅能避免重复生成代码,还能防止之后每次修改文章列表,要到各个页面里分别修改。
3)如果要给已有项目增加功能或修复 Bug,切记不要太贪心 。最好每个功能和 Bug 单独一次提问,分步生成并验证,并且在提示词中限定修改范围(比如只改 xx 文件)。防止改了一个 Bug,出现 10 个 Bug。在 Vibe Coding 中,这是有可能的。
4)让 AI 每次生成代码后,进行测试 。有时候 AI 会自动帮你做这个事情,比如写个脚本请求接口看看返回是否正常,或者执行命令试着编译一下项目,这样能尽量确保每次变更的正确性。不要说做着做着新功能,你给 AI 的问题就变成了 "请帮我修复 bug",会产生很多无意义的上下文。
5)如果你使用的是 Cursor,可以设置 Rules 规则来约束 AI。比如觉得 AI 成本太高、或者生成太慢,可以在提示词中引导 AI 直接输出源码,不用给出总结和解释过程。
总结
虽然 Vibe Coding 目前还不完美,但代表了编程的未来方向。大家一方面要学会更好地利用 AI,另一方面也不要放弃传统编程技能,平时可以刻意锻炼自己 利用开发经验来描述意图 的能力,毕竟即使 Vibe Coding 可以让我们更快地实现想法,但想法本身还是要靠我们自己。
好了,今天的分享就到这里。如果你对 Vibe Coding 有什么想法或经验,欢迎在评论区分享~
记得点赞关注,我们下期见!