有一个事实,我最近越来越频繁地感受到,但好像还没有太多人大声说出来。
不是AI写的代码看不懂,也不是AI写的代码质量太差。而是更根本的一个问题:AI写得太快了,我根本读不过来,检查不过来。
这件事正在改变我工作的方式,也在改变我和代码之间的关系。我试着把这种感受理清楚。
一
先看一个我很熟悉的场景。
一个下午,我坐在电脑前,理解需求,拆解逻辑,查阅文档,反复修改,最后写出两百行代码。这两百行,是我思考了几个小时的产物。每一行我都能告诉你它为什么在这里。
现在,我把同样的需求描述给AI。从敲下回车到屏幕上铺满两百行代码,大概十秒钟。
十秒钟,产出了我一个下午的思考量。
这意味着什么?意味着AI在十秒钟里做完的事情,如果我要逐行检查、理解、验证,理论上我仍然需要一个下午。但说实话,我不会给它的输出分配一个下午。因为那太不划算了。我用AI就是为了省时间,结果检查比手写还慢,那我用它干什么?
于是我开始压缩检查的时间。从逐行审查变成扫一眼,从理解逻辑变成看能不能跑通。只要运行结果对,没有明显的报错,我就放行。
我心里知道这不太对,但我没有更好的办法。我的时间就那么多,而AI的输出速度是我的几百倍。
二
我开始意识到,这不是态度问题,是带宽问题。
我的大脑和一万年前的大脑,处理信息的速度没有本质区别。我的工作记忆就那么点容量,同时能装四到七个信息块。读代码这件事,本质上是在脑子里搭建一个动态模型:这段逻辑是怎么回事,数据往哪里流,边界情况会不会炸,异常有没有被接住。这需要时间,需要专注,需要反复回看。
我一个小时能高质量地审查多少行代码?有人说是三四百行。超过这个数,我发现缺陷的能力就直线下降。而这三四百行,AI用不了一分钟就能吐出来。
它生成的速度,已经远远超过了我能审查的极限。
这就像用消防水管对着一个杯子灌水。水来得太猛,杯子不但接不住,还会被打翻。过去,开发的瓶颈是“代码写得太慢”。现在,瓶颈变成了“我的大脑处理不过来”。而我的大脑,没有摩尔定律。
三
当审查速度跟不上生成速度,我发现自己在用一套更“高效”的策略:用运行结果代替审查。
跑起来,输出看着对,就合并。输出不对,就退回去让AI重写。看起来聪明,实际上我在积累一种看不见的债。
因为很多问题,跑一次两次是看不出来的。边界条件在正常输入下不会被触发;安全隐患只在特定条件下暴露;性能问题要到数据量涨上去才显现;设计上的耦合和混乱,更是等到需求变更时才会发作。
这些东西,本应该在审查阶段被我拦截。但当审查被跳过,它们就毫无阻拦地进入了代码库,变成了一颗颗定时炸弹。爆炸的时间不在今天,不在本周,可能在下个月,在下个季度。等到炸的时候,当初生成这段代码的上下文早就丢了,我不记得它是怎么来的,为什么这么写。
那时候的修复成本,是当初审查成本的十倍甚至百倍。而且很可能,修复它的人不是我,是另一个倒霉的同事。
四
更让我不安的,是一种“理解的幻觉”。
AI生成的代码往往格式工整,注释详尽,变量命名规范。看起来很专业,很“正确”。这种表面上的流畅,会哄骗我的大脑说:“嗯,没问题。” 然后放行。
但我慢慢发现,格式工整不代表逻辑正确。注释详尽不代表理解正确。变量命名规范不代表设计正确。
有好几次,我扫了一眼AI的代码,觉得写得挺好,就合并了。后来出了bug,我回过头去看,才发现里面藏着一个明显的逻辑错误。我当时为什么没看到?因为它“看起来”太对了。我的眼睛从上面滑了过去,根本没有穿透到逻辑层面。
我签字了,我说OK,但我对这段代码实际上做了什么,只有模糊的印象。
这种虚假的掌控感,比完全不懂更危险。不懂的时候你会保持警惕,而“以为懂了”会让你放心地走开。
五
这个速度差,还在改变我对我自己的身份认同。
过去,我是代码的“作者”。我写每一行,我知道每一行为什么在那里。代码是我思考的物化,是我的作品。
现在,我越来越像一个“编辑”和“验收员”。我的工作不是创造代码,而是筛选、拼接、调试AI生成的东西。我不是在建造,我是在验收。
建造者理解每一块砖为什么放在那里。验收者只是看看墙平不平,漆亮不亮。
当大部分代码都不是我写的,当每段代码的来历都是“AI生成的,我检查过能跑”,我对自己的系统到底有多大程度的掌控?当bug被发现时,责任追溯变得模糊:是我的提示词写得不好?是模型本身的问题?还是我审查时没仔细看?
代码的作者消失了,剩下的是一个对AI输出进行抽检的人。
而我的抽检能力,受限于我一天只有二十四小时,受限于我那个没有升级过的大脑。
六
我并不是在反对AI写代码。我自己每天都在用,它确实极大提升了效率,而且这个趋势不可逆转。
但我必须诚实面对一个问题:我的认知能力,已经跟不上工具的生产能力了。
这不是谁对谁错。工具进步了,我没有进化。这个差距,就是所有风险最根本的源头。
我开始觉得,未来的方向不是“更努力地审查”,因为我再怎么努力,也不可能逐行审查AI生成的每一段代码。我需要接受这个事实,然后换一种方式思考。
也许是在架构层面做隔离:AI生成的代码必须被限制在可替换、可监控的模块里,出问题时能快速熔断,而不是和核心系统长在一起。
也许是用机器去检查机器:既然人读不过来,就用更强的自动化测试、形式化验证、运行时监控来补上这个缺口。
也许是我需要重新定义自己的角色:从“写代码的人”变成“定义目标并验证结果的人”。中间那个黑箱,我接受它,管理它,但不再幻想自己能完全理解它。
我正站在一个奇怪的节点上。
我使用的工具,它的产出速度已经超过了我自己的消化速度。我造出了一个比我自己“想”得更快的系统,现在我得想办法,在不需要“想那么快”的前提下,安全地和它共处。
这不是一个看懂看不懂的问题。这是一个关于快和慢、生产和审查、机器和大脑之间那道越扩越大的鸿沟的问题。
而我,正站在这道鸿沟的边缘,试图不要掉下去。
夜雨聆风