返回资讯中心
外部精选
软件工程
#开发者实时流

研究测量AI对46个开源仓库的影响:代码量上升,复杂度增长更快

来源标题:We measured the impact of AI on 46 OSS repos (200k commits, 16M lines)

研究分析46个开源仓库、20万次提交后发现,采用AI后每100行新代码含8.1个决策点,较此前的5.2个增加约50%,代码复杂度加速累积。中位代码库每位工程师每周产出424行生产代码,高于此前的293行,团队规模无明显变化。90天内被重写的代码占比从18%降至12%,但AI标记的提交被重新修改的频率比其他提交高43%。

Hacker News 最新karimtr2026/11/5 · 昨天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

AI 正在帮助开发者交付更多代码,但它同时也在加速复杂度的累积,而这种累积会很快形成叠加效应。如果不加控制,这种复杂度会悄无声息地堆积起来,体现在代码变得运行更慢、修改风险更高上。

LinkedInXEmail复制链接 向 AI 询问这份报告

自从采用 AI 以来,每 100 行新代码包含 8.1 个决策点(if 语句、循环等),高于此前的 5.2 个。这意味着需要理解和测试的路径多了 50%。

在中位数代码库中,每位工程师现在每周编写 424 行生产代码,高于此前的 293 行。71% 是各代码库自身变化的中位数;这两个中位数之间的变化是 45%。团队规模没有出现任何一致的变化。

新代码在 90 天内被重写的比例从 18% 降至 12%。标记为 AI 的提交被重新审视的频率比其他提交高 43%,并且多出难以测试的函数的可能性高 17%。

测试提交占全部提交的比例从 4.7% 升至 8.3%,但缺陷修复仍占四分之一。一个可能的原因(数据无法证实)是:测试跟上了代码的数量,却落后于其复杂度。

从 2022 年到 2024 年,该指标一直保持在每 100 行约 5 个决策点,到 2026 年 10 月达到约 10 个。未标记 AI 使用的代码库也有所上升,但采用 AI 的代码库上升得更快。

Claude 签署了 69% 的 AI 标记提交,这主要是因为 Claude Code 默认标记提交,而大多数其他工具不这样做。在相同的代码库中,Claude 的提交比未标记的提交大 54%,被重新审视的频率高 55%。

按照当前趋势,到 2028 年末,新代码的决策点将增加 42%,从每 100 行 9.0 个升至 12.8 个。如果增长继续以每月 3.5% 的速度叠加,增幅将达到 128%,即每 100 行 20 个。每多一个分支,就多一条需要推理、测试和维护的路径。

每位工程师现在拥有的代码更多,而这些代码也更密集。代价正在累积,体现在代码运行更慢、修改风险更高上。我们预计 DORA 这类交付指标会是最晚显现这一点的。

引言

自 AI 到来以来,新代码承载了更高的复杂度,而且这种复杂度正在更快地叠加

这是《AI 对代码质量的影响》的第一版,该研究由 Kerno 开展,探讨 AI 正在如何改变团队交付的代码。在不到两年时间里,AI 编码助手和 agent 已从实验性工具变成许多软件编写工作的默认方式。为了解这对代码库本身意味着什么,我们分析了 2024 年 10 月至 2026 年 10 月期间 46 个开源项目中的 201,576 次提交,并将复杂度追溯至 2022 年 10 月。

新代码变得更密集,其复杂度每月增长得更快。

大多数团队不会看到这一点,因为行业衡量的是交付,而不是结构。DORA 指标追踪的是团队交付的速度,而不是每次变更如何重塑代码库。当工程师能理解自己交付的全部代码时,这一差距尚可管理。随着 agent 编写其中更多代码,我们预计这个问题会一直隐藏,直到以事故和功能停滞的形式显现出来。

代码质量的基本原则没有改变。需要改变的是团队应用这些原则的地点和时机。

这是 Kerno 的观点,本数据并未对此进行检验。投资于 agent 原生的本地代码 QA 的团队,可以通过将质量检查移入 agent 循环来把复杂度控制在合理范围内。这意味着在代码生成时就在本地运行静态分析(SAST)、运行时分析和冗长检查,而不是在拉取请求打开之后才做——那时反馈循环已经承受压力。

决策点是代码可以走两条路径之一的任何位置,例如 if、循环或 switch 中的 case(McCabe, 1976)。每一个决策点都是工程师必须理解、测试必须覆盖的另一条路径。

这一上升是近期才出现的。从 2022 年 10 月到 2024 年 12 月,复杂度稳定在每 100 行新代码约 5 个决策点。从 2025 年 1 月起开始攀升,起初缓慢,随后在 2026 年急剧上升,到 2026 年 10 月达到 10.3(图 1)。所有代码库的中位数每月增长约 3.5%。典型代码库自身的增长为 3.1%,即本节标题中的数字(附录 C)。

每 100 行新代码的决策点,每月中位数代码库,2022 年 10 月至 2026 年 10 月

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →