上周帮朋友debug一个项目,他用Cursor写的,前端后端加起来大概两万行代码。跑起来看着挺像那么回事,但我一翻代码,好家伙——同一个API请求逻辑复制粘贴了四遍,数据库连接从来不关,环境变量明文写在代码里。
我问他,你review过这些代码吗?
他说:没有啊,跑得通就行了呗。这不就是Vibe Coding嘛。
我当时就觉得不对劲。
Vibe Coding到底是什么
先交代一下背景。"Vibe Coding"这个词是 Andrej Karpathy 去年2月发的一条推特,原话大意是:你只管用自然语言描述需求,AI帮你写代码,你不用逐行看,跟着感觉走就行。
就这么一句半开玩笑的话,直接被柯林斯词典评为2025年度词汇。到今年年初,大概85%的开发者在日常工作中用AI编程工具了。
说实话我自己也用。每天都用。Cursor、Claude Code轮着来,写代码的效率确实提升了不少。
但最近看到一组数据,让我对"跟着感觉走"这事有了新的看法。
那组让我睡不着的数据
去年12月,代码审查平台 CodeRabbit 做了一个挺扎实的研究。他们分析了 GitHub 上 470个开源项目的PR,对比AI参与编写和纯人工编写的代码。
结果:
- AI代码的重大问题比人工代码多1.7倍
- 配置错误多75%
- 安全漏洞多2.74倍
2.74倍的安全漏洞。你品品这个数字。
这还不算完。阿里前阵子发了个叫SWE-CI的基准测试,让AI Agent在真实项目上持续维护代码(不是做一道题那种)。结果发现75%的模型在改代码的过程中,会把之前好好的功能改崩掉。
两份独立研究,指向同一个结论:AI写代码很快,但写出来的代码质量有系统性的缺陷。
这不是说AI不能用。是说你不能"vibe"着用。
现在的工具到底怎么样了
客观地说,工具进化速度确实快。聊几个我自己用过的。
Cursor,应该是现在用户最多的。它牛的地方是真的能理解你整个项目,不只是当前文件。跨文件改代码、保持风格一致,做得不错。
但它有个问题——太"贴心"了。它改了什么东西,有时候不太容易一眼看出来。你得仔细翻diff,不然就会像我那个朋友一样,代码跑得通但全是隐患。
Claude Code 是另一种玩法。这东西直接在终端里跑,你描述一个任务,它自己去读代码、改代码、跑测试。感觉更像是你雇了个干活的程序员,你当项目经理。
最近的更新加了MCP集成(直接连数据库、连Jira)和并行会话(用Git Worktree隔离,几个任务同时跑),实用性确实又上了一档。
Replit Agent 适合非程序员。浏览器里说一句话,它帮你从零搭一个App。做原型很爽,但你要是拿这东西做生产系统……还是算了吧。
我踩过的坑,分享几个
用了大半年AI编程,说几个真实教训。
最贵的一次教训:让AI"自由发挥"
有一次我让Claude Code重构一个文件解析模块,就给了一句话的描述。它确实重构了,代码看着也挺漂亮。但它"顺手"改了函数签名,导致其他三个模块的调用全部挂了。
CI跑了二十分钟才全挂完。回滚花了更长时间,因为它改的东西散落在七八个文件里。
从那之后我学乖了:每次只让AI做一小步,跑完测试再继续。 别让它一口气碰太多东西。
关于Review这件事
CodeRabbit的数据为什么会那么难看?我觉得核心原因就一个:大部分人没在认真review AI写的代码。
人写代码的时候,每一行都是自己想过的(至少大部分是)。AI写的代码你只是"看了一遍",但"看"和"理解"是两码事。
我现在的做法是把AI当一个产出很快但经验不够的junior。它写得很快没错,但每一行都需要senior来把关。哪些边界情况没考虑?哪些变量名有歧义?哪些逻辑看着对但前提条件变了就会出问题?
这些AI不会主动告诉你。
提示词的好坏,直接决定产出质量
同一个任务,你说"帮我写一个用户管理系统"和你说"用Express写一个REST API,包含注册登录接口,密码用bcrypt加盐,JWT过期时间2小时,错误统一返回{code, message}格式"——出来的东西天差地别。
我现在写提示词的习惯是:先说约束(用什么技术栈、不要用什么),再说功能,最后给一个输入输出的例子。写的时候还会特意说一句"不要添加我没提到的功能"——因为AI特别喜欢过度设计。
Git是你的救命稻草
这一条怎么强调都不为过。每做一小步就commit。AI改崩了?git revert一下就回来了。
我之前有一次没commit就让AI连续改了十几个文件,改到一半发现方向不对,又回不去了。那种感觉,比不用AI还绝望。
说点真话
Vibe Coding不是一个你可以选择的事情。它就是趋势,不用也得用。
但"vibe"不等于"不管"。2026年的现实是:工具强到能帮你省一大半时间,但还没强到你可以闭着眼睛信它。
你见过哪个好的技术lead是"跟着感觉走"的?
代码review、自动化测试、小步提交——这些"老派"的工程实践,在AI编程时代反而比以前更重要了。因为AI产出代码的速度是人的好几倍,如果你的质量关卡跟不上,bug积累的速度也是好几倍。
说到底,会用AI写代码只是入门。会判断AI写得对不对,才是真正值钱的能力。
Karpathy当初说Vibe Coding的时候,自己可是看得懂每一行代码的。