vibe coding的真实成本
上周三下午,我在调一个通信中间件的小工具。
Claude Code十分钟就把代码生成完了。看着挺像那么回事,接口、协议、消息队列,该有的都有。一跑——崩了。协议字段少了一半,接口对不上,消息格式完全不匹配。我当时想,行吧,网上不是都说别在原来基础上迭代吗?重新生成整个项目,一把梭。
放nm的p。
真的。
重新生成之后,问题更多了。上一次需求规格的细节缺失,导致中间件完全失配。每次都要重新补全细节,越补越多细节问题冒出来。然后我需要花更多时间——甚至比古法编程还多的时间——去review、重新适配。为什么?因为你根本不知道AI在背后改了什么。你只能重新调试找问题。
传统开发模式里,这种迭代修改几分钟就搞定了。你清楚知道改了哪里,影响范围是什么。但在vibe coding里,你就是个瞎子。
更让我崩溃的是4.8版本之后的harness工程。
我一个项目,10分钟让AI生成代码,然后花了100分钟去搞harness测试工程。期间AI很不老实地插入各种稀奇古怪的测试代码,甚至是侵入式的,失败概率极高。100块钱的token,80块都烧在这里了。
绝了。
现在我看到opus那边跑harness,直接终止,叫它一边凉快去。可能有人觉得,反正不用自己写代码,顶多等久一点。开什么玩笑?vibe六个小时,结果一用发现需求要改,你再等6小时?
快速迭代在大多数时候,都比能不能做出来重要得多。
你以为是帮手,其实是盲盒
讲真,我写代码写了十年,从jQuery写到React,从单机写到分布式,什么大风大浪没见过。但vibe coding这事儿,我是真栽了跟头,而且不止一次。
问题出在哪?
你想想这个场景:你让AI生成一个项目,它给你一堆代码。你看着挺完整,但一跑就发现问题——某个接口的参数类型不对,某个协议字段缺失,某个边界条件没处理。然后你让它改,它改了。但改了之后,之前能跑通的部分又崩了。
为什么?因为你不知道它改了哪里。
传统开发模式里,你改一个bug,你知道改了什么文件、什么函数、影响范围是什么。但在vibe coding里,AI可能改了三个文件、五个函数、十个变量,你完全不知道。你只能重新调试,重新找问题。
这就像你让一个人帮你整理房间,他整理完了,但你找不到你的钥匙了。你问他钥匙在哪,他说不知道。你只能自己重新翻一遍。
这就是vibe coding最大的问题:它不是帮手,是盲盒。
为什么重新生成比迭代更糟糕?
网上有个说法特别流行:vibe coding别在原来基础上迭代,要重新生成整个项目。
我试了。
真的试了。
结果呢?重新生成之后,问题更多了。因为上一次需求规格的细节缺失,导致中间件完全失配。每次重新生成,你都要重新补全细节。越迭代越多细节问题冒出来。
我拆解一下这个问题:
你第一次描述需求的时候,可能说了80%的细节。AI生成了代码,你发现缺了20%。然后你补充细节,重新生成。但这次AI可能只吸收了70%的细节,又缺了30%。你越补充,它越缺失。
为什么?因为AI没有记忆。它不会记住你上次说了什么、改了什么。每次重新生成,它都是从零开始理解你的需求。
然后是你不知道AI改了什么。传统开发模式里,你改一个bug,你清楚知道改了什么。但在vibe coding里,AI可能改了三个文件、五个函数、十个变量,你完全不知道。你只能重新调试,重新找问题。
还有测试成本。4.8版本之后,harness工程简直是个灾难。10分钟生成代码,100分钟搞测试,80%的token烧在测试上。而且AI会插入各种稀奇古怪的测试代码,甚至是侵入式的,失败概率极高。
这三个问题叠在一起,vibe coding的效率远低于传统开发模式。
古法编程 vs Vibe Coding
4.8之后我真是被坑怕了。之前这堆方法论是怎么吹起来的?脑补云代码云工程么?不管以后有没有实用价值,反正今天在4.8这里,就是非常纯粹的一坨屎。
现在vibe coding基本上快成为编程的代词了。说到编程,如果你还是自己一行行写代码,就被称为古法编程了。但这个古法其实也不古,vibe coding也就最近两年刚出来,真正普及开来也就25年。
甚至我看到有人说,Cursor是古法编程程序员最后的倔强。这意思好像就是说,程序员可以完全不看代码了,最好就使用Codex或者CC,任何编程想法都通过自然语言来完成。
好像这样才是主流的,才是正常的。
扯淡。
真的。
软件开发七十多年的历史,本质上就是持续提效的历史。从机器码到汇编,从C语言到Python,从本地部署到云计算,每一次技术跃迁都有人说程序员要消失了。结果呢?编译器没有消灭程序员,Python没有消灭C程序员,Excel没有消灭财务,云计算没有消灭IT。
效率提升从来不会减少需求,只会释放需求。
以前做软件,门槛是语法记不记得住、算法会不会写、调试找不找得到bug。现在有了AI,这些门槛确实低了。但门槛并没有消失,它只是转移了。
现在的门槛变成了:AI生成的代码对不对、架构设计合不合理、性能瓶颈在哪、安全漏洞有没有。这些判断比写代码本身需要更深的功底。
AI最强大的是快速生成代码、写boilerplate、生成单元测试、给重构建议。但AI最弱的是定义正确的问题。它替代的是写代码,不是软件工程。
架构品味这件事,AI真不行
说到架构设计,这事儿更有意思了。
之前我一直说vibe coding的架构很糟糕,很拼好码,但你要问我为什么,前段时间我还真说不出来。vibe coding给人的感觉就是,很多代码不是没用架构没用设计,有些时候甚至一些局部设计很好很有道理,但拼在一起就是一坨。
直到我看到一个评论,我才意识到问题在哪。
工程项目和美术、小说一样,画久了一个人会形成画风,写得多了会有文风。哪怕你去下棋、打电竞,做久了都会形成特别明显的个人风格。你看到某个作品,就会本能想起这是出自某个人之手。
工程项目同样存在主导人的工程设计品味,这类风格品味会非常稳定地存在于整个生命周期中。不论怎么改,这种风格始终不会有太多改变。一个成熟的工程品味,在项目的长期迭代中是极其重要且极其有益的。
当前AI几乎不存在这种品味,而是把一堆人的思路拼在一起。这就导致vibe项目像是和一群人下棋,AI能赢但不好看。但我们看人下棋,并不是因为谁输谁赢这个结果才去看的。
你想想,是不是这个道理?
最近技术圈有两件事撞在一起,挺值得说说。
一件是有个独立开发者写了篇文章,标题特别戳——《你没法给品味写单元测试》。另一件是一个号称用AI凭感觉写出来的产品,被人扒出来其实是抄的。
这两件事看着不挨着,其实说的是同一个东西:vibe coding火了一年多,现在开始还债了。
当AI把写出来这件事的门槛降到几乎为零之后,真正变得稀缺、变得值钱的,不是会不会写代码,而是判断和品味——你知不知道该做什么、什么是对的、什么只是看着能跑其实是空壳。
我特地去看了那篇文章,作者在做一个跑步的App,想给地图加上沿途有什么值得看的地方这种功能。他找了个公开的地理数据集,拉上AI一起,用Python搭了一条数据处理的流水线。
结果他发现一件事。他原话是这么说的:我一开始以为AI会是这个功能的主角,最后发现它只是个配角。
为什么?因为哪个点值得标这件事,特别吃判断。一条路边上可能有几百个地名,AI能很快列出来,但哪个游客真的会感兴趣、哪个其实是个没人去的小地方、哪个名字听着像景点其实是个加油站——这种取舍,AI做得一塌糊涂,还时不时给你编一个根本不存在的地方出来。
他说自己整个过程都在跟品味和偏见较劲,跟一个爱犯幻觉的AI搏斗。最后真正解决问题的,不是AI,是他自己对什么算有意思的判断,再加上一堆老老实实的数据清洗。
这就是你没法给品味写单元测试的意思。
代码对不对,你可以写测试跑一遍,红了就是错。但品味这东西,没法自动化验证。
我之前判断错了
说到测试,还有个更魔幻的事儿。
前几年互联网公司裁员,先干掉的就是功能测试那群人。后来21年我在某厂,看着测试中心被拆了,整个组基本没了。除了核心C端的还有一部分测试人员,其他的都给开发自测了。
别问是不是也运转下来了,反正事情就这样发生了。
不会有人能想到,TM喵的vibe coding时代来了之后,所有人都成了测试!
真的。
你想想,AI生成的代码你敢直接上线吗?不敢。你得测。但你又不知道AI改了哪里,所以你只能全量回归测试。以前有专业测试帮你兜底,现在你自己就是测试。
这事儿挺讽刺的。
我之前一直以为vibe coding会降低测试成本,结果恰恰相反。因为AI生成的代码不确定性太高,你不得不做更全面的测试。而且AI还会在测试代码里插入各种稀奇古怪的东西,让测试本身也变成需要测试的对象。
翻车了。
如果你也想用vibe coding
说了这么多,我总结一下——不对,应该叫避坑清单,但我不想编号,就随便说说:
别信什么重新生成整个项目比迭代好,扯淡。涉及通信的中间件项目,重新生成几乎都发现了上一次需求规格的细节缺失,越迭代越多细节问题冒出来。
4.8版本之后的harness工程,能不用就别用。10分钟生成代码,100分钟搞测试,80%的token烧在测试上,失败概率极高。
AI生成的架构,局部看着挺好,拼在一起就是一坨。因为AI没有工程设计品味,是把一堆人的思路拼在一起。
通用工具赛道已经彻底关闭,别跟风做万能AI工具,百分百亏损。我见过太多人用vibe coding做通用AI工具箱,半年前还能拿到自然流量变现,现在每天几百个小白复刻同款工具。你花3天做的,别人1天就能复刻。为了抢用户,大家疯狂压低定价,原本月入上万的赛道,现在一单几十块都没人买单。
平台审核、合规门槛持续抬高。国内AI功能必须企业主体备案,个人号直接驳回上架。海外GDPR隐私法案强制隐私政策、数据删除通道,AI生成内容版权、素材侵权罚款动辄几千欧元。小白毫无应对能力。
AI是放大器,不是替代品。你本身有什么,AI就放大什么。方向对则收益巨大,方向错则浪费也巨大。
软件开发最难的部分从来不是写代码,是把模糊的业务需求彻底理解和抽象成精确的技术实现。这个过程AI帮不了你。
当AI把写出来这件事的门槛降到几乎为零之后,真正变得稀缺的是判断和品味。
vibe coding时代,所有人都成了测试。
还有个让我挺感慨的事儿。Supabase这家公司,作为vibe coding的兜底基础设施,估值已经到百亿美元了。他们的数据库上线量增长了600%,但亮眼的数据背后,被热度吸引而涌入的用户,以及他们建立的应用中,活跃且持续付费的账号和僵尸项目各自占比几何,外界无从得知。
GitHub托管着数以亿计的代码库,但其中很大一部分是用户一时兴起提交、之后再也没碰过的仓库坟场。
类似的问题也在考验Supabase。
而且还有个安全问题。Supabase高度依赖Postgres的行级安全(RLS),它决定着用户读写数据的权限。但在vibe coding中,AI代理为了让项目顺利跑通,通常会自动关闭RLS策略,或写出有安全漏洞的规则。缺乏安全意识的普通用户难以识别。
这导致大量通过AI生成的Supabase后端,实际上处于数据裸奔的状态。
这些风险尚未集中爆发,但如果不及时修复,未来依旧可能产生反噬。
大概是这些吧。
反正我现在用vibe coding,就一个原则:简单任务用它,复杂架构自己来。别指望AI帮你做架构决策,别指望AI帮你把控安全,别指望AI帮你理解业务。
它就是个工具,放大器而已。
你自己不行,它放大之后更不行。
这话不好听,但真话往往不好听。
读者评论 5