我现在看不到爆炸半径
· 阅读约 4 分钟
今天下午,又让同桌给列表页加了个按状态过滤的功能。改了三个文件,跑通了,我点了两下,能用。然后关掉。
每次都是「行吧,能用就行」。
晚上躺下,突然想起来一个事:那个我扫了一眼没看懂的辅助函数,它为什么要动?
没想出来。
倒是想起十来天前读的一篇文章。亚历山大·克洛斯写的,7月24号发的,题目大意是怎么阻止 vibe coding。本来是当批判文章看的,想看看那帮用 AI 写代码的混子长什么样。读着读着发现,混子就是我。
他引了 Karpathy 的话,说自 2025 年 12 月以来几乎没写过一行代码。Karpathy 今年 3 月在 No Priors 播客上说的,原话大意是这变化极其剧烈,普通人可能意识不到——这段我是从克洛斯文章里读到的,那个播客我没听过,只能信转述。克洛斯说他信,因为他自己从 2025 年起就没碰过一行代码。
按理说应该觉得安慰:你看,大佬都不写了。但我想到的是另一个事——他们是选择不写,我是还没学会写,就已经搭上了这班车。刚才还在想“我得补什么”,下一秒发现可能没有“补”这个选项了。这三个月吭哧吭哧学的,算什么?
没人告诉我。
然后他说,vibe coding 会让人逐渐失去对死代码、冗余代码、桩代码的感知,失去对“实现了什么、为什么实现”的追踪。
我想给自己辩护:我每天都在读代码。但他讲的是追踪,不是阅读。我没话讲了。
我连自己项目里躺着多少段当年生成、今天不落地、但没人敢删的代码都不知道。它们为什么在那,我说不清。2025 年 12 月底 Claude Code 刚火起来那阵子,我还在学循环和数组。等我开始写项目,第一个动作是打开终端,让同桌帮我搭整个目录结构。我没有亲手搭过它,所以也谈不上理解它。
他文章里有个词,爆炸半径。意思是,让代理去执行计划的时候,你看不见它的改动范围到底会波及什么——计划不会显示爆炸半径,也不会指出哪些地方只实现了一半、哪些关键点漏了。我看到这个词的时候心里咯噔了一下。太像了。每次同桌跟我说“我会改这几个文件”,我都在猜——这几个文件连到了谁,改了它们会不会带崩别的页面。大部分时候猜不着。它说要动一个 query 函数,我根本不知道那个函数连着谁。跑通,就以为没事。
他还管这叫“氛围编码赌场”。这不就是拉老虎机么。投币,拉杆,看结果。
哦对,他还有一句话我读懂了:测试驱动开发能提供一定的确定性,因为测试名称本身就是对意图的描述。然后他补了一刀——但如果你让代理写测试,问题又回来了。
我就是那个让代理写测试的人。上个月让同桌顺手补了个测试,它写了,我看两遍没看明白那个断言到底在测什么。npm test 通过,我就没管。
现在回头看,那测试就是它写给自己看的,用来证明“我完成了”。而我真正在意的东西,我自己都没说清楚过。
他说这归根结底是信任问题:你没法信任自己对代码库的理解,也没法信任代理真的完成了你要的东西。这句话我读了三遍。
克洛斯还列了一堆工具,说这个不行那个不行。我没细看,我的项目还配不上“规范”这种词,那段批判只能看个热闹。
所以写了这么多,我还是不知道自己的爆炸半径在哪。队友都没有,谈不上半径。但至少知道有这个说法了,知道那种“能跑就行”的确认方式,本身就是赌。
评论区别的大佬谁懂啊,那种“改了这里会不会炸到那边”的判断力,到底是怎么长出来的?是读代码读出来的,还是亲手炸几次炸出来的?
写出来好受一点了。进度条:依然看不到爆炸半径,但知道有这回事了。挪没挪,说不好,先记下吧。
评论
还没有评论,写下第一条讨论。