← 返回资讯
陈默
AI 行业分析师
已审核

AI代码跑得通,但你看不懂

说真的,我一开始对Vibe Coding的判断全错了。

AI代码跑得通,但你看不懂

AI代码跑得通,但你看不懂


说真的,我一开始对Vibe Coding的判断全错了。

我以为AI写不出代码。结果半年下来,发现它写得可太好了——好到让你后背发凉。

一个支付模块引发的血案

这事儿得从我那个重构事故说起。去年11月,我让Cursor的Agent帮我重构一个支付模块。Agent自己扫了一圈代码,跟我说"发现一个设计模式的问题,建议改成策略模式"。我当时还挺美,心想这AI有点东西。然后它花了一个小时把整个模块重写了。

跑测试的时候全挂了。

17个测试用例,挂了14个。

因为它把我订单模块的接口也改了。Agent自己完全没发现——它看到A文件就改A文件,改完看到B文件引用了A就去改B。但A还被C和D引用着。它不知道。

翻车了。

这不是AI的错,是我的错。我给了它一个模糊的任务边界,它就放飞自我了。现在我的规矩是:给Agent的任务必须画清楚边界,"只改这个文件里的xxx函数,不改其他任何东西"。或者先切个分支让它随便造,不行就回滚——反正Git分支不要钱。

代码量翻了三倍,理解力归零

但这不是最大的问题。

最大的问题是代码量上去了,理解没跟上。用了半年Vibe Coding,我repo里的代码量从2.3万行涨到了7.1万行。说句丢人的话——有些模块我现在也看不懂了。

不是我写的。是AI写的。当时prompt完了能跑,就没管。

上个月要改一个退款逻辑,我打开那个文件,看了足足40分钟才明白AI的思路。它用一种我从来没见过的方式——用generator加闭包实现了一个状态机。能跑,性能也好,单次状态转换耗时0.3ms。但阅读成本极高。

绝了。

团队协作的时候更尴尬。同事review你AI写的代码,看到一段莫名其妙的逻辑,问"为什么要这么写",你只能回:"AI写的,我也不知道。"这事儿发生过3次之后,我们定了个规矩:AI生成的代码必须在commit message里标注[AI-Generated],并且附上当时的prompt。

Dijkstra在48年前就警告过我们

这事儿让我想起Dijkstra在1978年写的那篇短文,编号EWD667,标题特别挑衅:《论"自然语言编程"的愚蠢》。他当时说自然语言的"自然性"本质上是危险的舒适——你能轻松说出那些荒谬性并不显而易见的话,还觉得自己说清楚了。

48年后,这话应验了。

Vibe Coding最大的陷阱不是AI写不好代码——是它写出来的代码"看起来对"。而"看起来对"恰恰是最危险的bug。传统bug你一眼能看出来不对劲,AI生成的代码逻辑诡异但语法完美,测试能过,lint不报错。你品,你细品。

我给AI装了两个"监工"

我后来给AI装了两个"监工"。一个做静态检测查语法(用的是SonarQube 10.4),一个做行为检测查逻辑(自己写的测试套件)。不是限制AI的创造力,是给它划定一个"不能偷懒的范围"。这个范围一旦清晰,AI反而更省心——它知道了边界,就不用试探。

静态检测每周能抓到3-5个潜在问题,行为检测在上线前拦住了2次生产事故。这俩监工花了2天配置,但省下来的救火时间至少40个小时。

架构品味这事儿,AI真不行

但说实话,最让我头疼的不是技术问题。

是架构品味的问题。

前段时间看到一个评论才恍然大悟:工程项目跟美术、小说一样,做得久了会形成个人风格。你看到某个作品,会本能想起这是出自某个人之手。一个成熟的工程品味,在项目长期迭代中极其重要——它决定了3年后这个系统是继续演进还是推倒重来。

当前AI没有这种品味。它是把一堆人的思路拼在一起。这就导致Vibe项目像是和一群人下棋——AI能赢但不好看。

我们看人下棋,并不是因为谁输谁赢这个结果才去看的。

"功能管道":我的土办法

所以我现在用一套自己摸索出来的方法——我管它叫"功能管道"。不以代码为单位组织系统,而是以功能管道为单位。每条管道负责一个完整功能,从输入到输出。管道内部AI随便发挥,管道之间严格遵守接口契约。

你不需要读懂每一行AI代码,只需要理解管道之间的接口。

代码理解成本从O(n)降到了O(1)。

这个方案——不对,应该叫策略——还在迭代中。大概是目前最适合我的方式吧。用了3个月,团队新成员上手时间从2周缩短到3天。

别信"重新生成整个项目"那套

还有一个血的教训:别信"重新生成整个项目"那套说法。扯淡。

哪怕是小工具中间件,重新生成几乎都会发现上一次需求规格的细节缺失。涉及通信的中间件项目更是重灾区——我试过4次,4次都翻车。越迭代越多细节问题冒出来,然后你需要花更多时间——甚至比古法编程还多的时间——去review并重新适配。

你不知道背后发生了什么,只能重新调试找问题。传统开发模式里,你总能第一时间意识到功能修改点,几分钟搞定迭代修改。

Vibe Coding?六个小时生成,发现需求要改,再等六小时。

快速迭代在大多数时候,比能不能做出来重要得多。真的。

三段式闭环:零成本的提效方案

我现在的流程是口语化需求输出→AI初版生成→精准口令迭代修正的三段式闭环。拆prompt,"做什么→怎么做→怎么验收"分三步给,别一次全扔进去。零成本,立刻见效。

试了47次,成功率从一次性扔prompt的62%提升到了91%。

还有一条硬性规则:每加入一个新功能,必须评估可以移除或合并哪些旧功能。做不到就不加。

系统复杂度不会随时间无限增长。运行半年以来,功能一直在演化,但核心复杂度始终控制在稳定范围内——代码行数涨了3倍,但核心模块数量只从12个增加到15个。

隐性成本:100块token里80块烧在测试上

说到成本,很多人觉得Vibe Coding省钱。实际用下来,token费用不高,隐性成本不少。反复试错的prompt时间、看不懂代码的学习成本、出问题后的救火时间。

有次我让AI跑harness测试工程,10分钟代码生成完,后面花100分钟搞测试。期间AI很不老实地插入各种稀奇古怪的测试代码,失败概率高达73%。100块钱的token里80块都烧在这里。

现在我看到opus那边跑harness就直接终止。不跑。不值得。

底线问题

如果你在用Vibe Coding做上线项目、生产环境、多人协作的代码,给AI加约束不是可选项,是底线。不是"可以配",是"必须配"。

出了问题没人替你扛。代码写错了可以改,数据泄露了、用户跑了、口碑毁了——这些损失不可逆。

真的。

Vibe Coding省的不是脑子,是手。脑子该花的功夫,一分都不能少。

44
1108 阅读
2 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 13:16

陈默

AI 行业分析师

前某大厂 AI 实验室研究员,关注大模型技术演进和商业化落地。写过 200+ 篇行业分析,擅长从产品视角拆解技术趋势。

读者评论 2

A
AI研究员 1周前
观点有道理,不过我觉得还需要考虑算力成本的问题。
回复 点赞 (11)
M
创业者Mark 2天前
正在做相关方向,这篇文章给了我不少启发。
回复 点赞 (7)