代码通胀时代,AI生成的代码需要 12 倍审查成本?

0 阅读4分钟

近日,有人在 Reddit 上算了一笔账,贡献者用 AI 生成一个 Pull Request (PR) 只需要 7 分钟,而维护者为了理解逻辑、排查隐患、测试运行,平均要花 85 分钟。

这就是著名的 Brandolini 定律(又叫废话不对称原则,反驳废话所需的能量比产生废话的数量级大)在 AI 时代的具象化。

以前有人提 PR,主要看逻辑;现在面对 AI 生成的代码,得像防贼一样防着它。这些代码看起来完美无缺,变量命名漂亮,注释写得比高考满分作文还好。但当真去跑的时候,完蛋了,死循环、幻觉依赖、甚至是在 Python 3.12 环境下调用了 3.7 的废弃 API。

我们正在进入一个代码通胀但信任通缩的时代。面对海量涌入的、看似完美实则脆弱的 AI 代码,无论写 Python、Go 还是 Java,开发者都迫切需要敢放心运行代码的环境。

隐形陷阱:为什么 AI 代码如此危险?

很多人认为 AI 代码的问题只是“写得不够好”。但在安全专家眼里,问题远比这严重。根据 IEEE 和斯坦福大学的相关研究,AI 辅助编程正在带来三类新型风险,且跨越了所有编程语言:

1. 合成漏洞与幻觉依赖

以前人工写代码的时候,代码可能是逻辑错误、拼写错误,这样容易被静态分析工具抓到。

但 AI 生成的代码看起来完美无缺,符合 PEP-8 规范,使用了现代语法,但本质上是逻辑崩坏的(例如 SQL 注入的抽象层)。更坑的有可能会产生幻觉依赖包,被黑客利用进行供应链攻击(Slopsquatting)。

如果企业大量采用 AI 编程而没有极高水平的资深工程师进行 100% 的审计,其代码库就是在积累一种新型的技术债务和安全隐患。这种隐患在平时看不出来,一到极端情况就会灾难性爆发,后果不堪设想。

2. 对环境版本的滞后性敏感

众所周知,LLM是基于历史数据训练的。它会记得两年前的 Python 3.7 写法,却不知道 Python 3.12 引入了更严格的语法检查;它可能还在用 Java 8 的旧特性,而你的项目早已迁移到 Java 21 LTS。

这种滞后性会导致 AI 代码经常出现“在 AI 的脑子里能跑,在现实的编译器里报错”的现象。

3. 不安全的默认配置

AI 从 Stack Overflow 和入门教程中学习了大量开发模式代码。为了方便教学,这些教程往往会关闭安全验证。AI 继承了这种偏见,倾向于生成默认不安全的配置代码,这在任何语言的 Web 框架中都是巨大的隐患。

解决之道:从Writer转型为Auditor

“以前你必须懂一点才能写出烂代码;现在你甚至不需要懂,就能生成看起来很专业的烂代码。”

所以,在 AI 时代,核心竞争力不再是写代码的速度,而是代码审查能力。

要知道,比代码跑不通更可怕的,是代码跑通了,但那坨屎有毒。

AI 是肯定会出现幻觉的,如果直接在主力开发机上运行不明来源的 pip installnpm installcargo build,跟在路边捡东西吃没区别。如果你在系统环境下裸奔,一旦污染了注册表或全局环境,重装系统都算轻的。

这时候,ServBay的高傲就尽数体现。

ServBay 提供的是一个非侵入式的本地开发环境。它自带独立的文件系统结构和运行库,不依赖也不修改操作系统的核心文件。

不管 AI 生成的代码有多烂,不管它是不是引入了恶意的依赖包,由于 ServBay 的环境是沙盒化的,炸也只炸在沙盒里,不至于影响到系统。

信任,但要验证

Linux 之父 Linus Torvalds 曾说,AI 是能力的乘法器。

当然,他最近也在开始 Vide Coding 了。

对于资深开发者,10年经验 × AI = 10倍产出;但对于缺乏验证机制的团队,0经验 × AI = 10倍技术债务。

不要让你的项目成为 AI 试错的牺牲品。无论是什么语言,一定要通过验证才行。

而ServBay,就是AI 编程时代的本地代码检疫站。