news 2026/4/1 4:13:50

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码通胀时代,AI生成的代码需要 12 倍审查成本?

近日,有人在 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 编程时代的本地代码检疫站。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 2:23:29

[Web自动化] 爬虫之网络请求

9.4 爬虫之网络请求 9.4.1 使用requests库发送HTTP请求 requests库提供了丰富的功能来发送HTTP请求,并处理响应。以下是一些额外的示例和说明。 发送带参数的GET请求: 如果你需要向服务器发送查询参数,可以将它们作为字典传递给params参数。 …

作者头像 李华
网站建设 2026/3/27 16:35:02

08.05.01.tiptop webserver接口篇(制作接口:自定义查询)

本页目录: 1、写代码2、配置3、测试 写代码 修改注册服务接口代码:/u1/topprod/tiptop/aws/4gl/aws_ttsrv2_service.4gl 添加發佈 Service Function 段落 ----------------------- begin waichi001 --------------WHEN "aws_customizeQueryData&…

作者头像 李华
网站建设 2026/3/27 1:29:56

05. 如何实现原理图比较?| OrCAD X Capture CIS 设计小诀窍第二季

OrCAD X Capture CIS设计小诀窍系列--如何实现原理图比较背景介绍:我们在进行原理图设计时,经常需要对原理图进行版本更新。而如果设计师对最新版本的原理图不满意,想要回溯原理图修改了哪些内容,则需要进行原理图比较。而通过Cap…

作者头像 李华
网站建设 2026/3/16 4:57:25

Spring Boot的多环境配置

在开发Spring Boot项目中,如果我们想把自己的项目开源到Github仓库,application.yml中的某些配置比如MySQL、Redis的账户密码,还有的就是现在引入AI之后的一些密钥,可能都不太愿意推送到仓库去。 这个时候,可以通过配…

作者头像 李华
网站建设 2026/3/27 6:54:18

【双指针】判断是否为回文字符串

求解代码 public boolean judge(String str) {int n str.length(); // 获取字符串长度&#xff0c;用于定义右指针初始位置// 双指针遍历for (int i 0, j n - 1; i < j; i, j--) {// 逐位对比首尾字符&#xff0c;只要有一位不一致&#xff0c;直接判定不是回文if (str.c…

作者头像 李华
网站建设 2026/3/31 14:47:05

=========

---------

作者头像 李华