宝玉的分享 02月27日
人工智能生成的代码如何加剧技术债务
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

GitClear最新报告揭示,随着AI编码工具的普及,代码重复率上升,代码质量却在下降。研究分析了2020至2024年间的2.11亿行代码变更,发现代码复用率降低,开发者重构意愿减弱,导致冗余系统增多。虽然AI提高了代码生成速度,但开发者在调试AI代码和处理安全漏洞上花费了更多时间。不加约束的AI代码生成可能给代码库带来沉重的维护负担,无限的代码意味着无限的维护,复制粘贴的代码还会带来额外的成本压力。因此,开发者在享受AI带来的便利时,也需警惕其可能带来的技术债务和维护成本。

📈代码重复率飙升:GitClear报告显示,2024年代码重复率较两年前提升了十倍,相邻代码块中重复行数显著增加,这与工程最佳实践相悖。

📉代码复用意愿降低:“移动行”指标下降表明开发者对已有代码的复用意愿减弱,系统重构减少,预示着未来更多冗余系统将出现。

⚠️维护负担加重:软件厂商Harness报告指出,开发者在调试AI生成代码和处理安全漏洞上花费更多时间,无限的代码意味着无限的维护。

💰成本压力增加:重复代码不仅难维护,还会带来额外支出,包括云端存储费用增加、测试工作复杂化以及运营成本上涨。

“在我 35 年的技术生涯中,我从未见过在如此短的时间里产生如此多的技术债务。”

GitClear 最新报告显示,随着 AI 编码工具越来越普及,代码重复率正在上升,代码质量却在下降。

如今,编写代码比以往任何时候都要容易。借助现今基于大型语言模型(LLM)的编码助手嵌入在 IDE 中,你只需在提示区输入一句话,或者按一下 Tab 键,就能生成多行代码。

自从AI 编码工具问世以来,诸如“不重复你自己”(DRY)等工程最佳实践就逐渐被忽视。

“在我 35 年的技术生涯中,我从未见过在如此短时间内产生如此多的技术债务。”API 布道师 Kin Lane 如此评价 AI 生成代码的泛滥。

GitClear 的第二份年度AI Copilot 代码质量研究对 2020 至 2024 年期间的 2.11 亿行代码变更进行了分析,这些代码来自匿名私有库和 25 个大型开源项目。研究结果显示了多重代码质量下降的信号,为一味追求 AI 带来的“快速胜利”可能埋下的长期隐患敲响了警钟。


代码复用正走向衰落

在 2024 年,GitClear 追踪到“相邻代码块中有五行或更多重复行”这一现象的出现频率增长了 8 倍——与两年前相比,代码重复比率提升了十倍。

同一年中,46% 的代码变更都是新增行,而复制粘贴的行数也超过了移动(moved)行数。“移动行”这一指标由 GitClear 提出,用于追踪对已有代码的重新排列,通常是为了将现有功能整合为可复用的模块。GitClear 和 Amplenote 的 CEO Bill Harding 表示:“系统的重构,尤其是对已存在代码的移动,通常标志着代码复用。”

而一年又一年的“移动代码”指标下降,意味着开发者对已有代码的复用意愿正在减弱。这与原本业界强调的最佳实践相悖,也预示着未来更多冗余系统将出现,而函数或功能的合并会更少。


图源自 GitClear 的研究报告 AI Copilot Code Quality


代码行数变多 ≠ 成功

不加约束的 AI 代码生成可能给那些生命周期较长的代码库带来沉重的维护负担。与人们认定的生产力提升相反,软件厂商 Harness 发布的2025 年软件交付现状报告却发现,大多数开发者在调试 AI 生成的代码以及处理其安全漏洞上花费了更多时间。

对于那些曾从 StackOverflow 复制过代码的开发者来说,频繁出现的复制粘贴行数也许不算什么新鲜事。然而,在 AI 的助推下,这种做法可能会导致技术债务的大幅飙升。

谷歌在 2024 年的 DORA 报告中指出,对 AI 的使用呈现利弊并存的态势:AI 使用率提升 25% 会加快代码审查并改善文档,但软件交付的稳定性则下降了 7.2%。


无限的代码意味着无限的维护

毫无疑问,代码助手非常有价值,大多数管理者都认为 AI 对保持竞争力至关重要。然而,不加管理地生成大量基于 LLM 的代码,是否会威胁到软件的可维护性?

数据表明,如果目前的趋势持续下去,修复缺陷和重构代码可能会占据开发者的大部分工作时间。GitClear 和 Amplenote CEO Bill Harding 说:“如果开发者的生产力继续只由提交次数或新增行数来衡量,那么 AI 引起的可维护性下降问题只会进一步加剧。”

除非团队更加注重可持续发展,否则 AI 将使得软件规模日益膨胀,进而需要“无期限的维护”。


复制粘贴的代价

除了可维护性之外,臃肿的代码还会带来成本压力。“包括我在 2024 年编程的大部分时间里,几乎没人会真正考虑代码在长期带来的开销。”Harding 如是说。

重复的代码不仅更难维护,也会带来额外支出:代码存储会产生云端费用;当相同的 Bug 分散在多处重复的代码块中,测试工作就会变得更加复杂,开发者的运营成本随之上涨。

学术研究也多次证明,“共变更”代码克隆(必须在多个地方同时更新的重复代码块)会导致更高的缺陷率。以华中师范大学 2023 年的一项研究为例,他们就发现代码克隆是种常见做法,但会对软件维护产生负面影响。


在按下 “Tab” 键前三思

GitClear 研究中值得庆幸的一点是,提交之间的时间正在缩短——AI 的确可以被用来抵消前述问题的一部分影响。比如 Cursor 等工具,就能协助开发者改写代码,确保每行之间的逻辑一致性。

然而,尽管 AI 在生成即时代码方面表现出色,它的上下文窗口毕竟有限。人类依然在全局把控、软件整体架构方面拥有不可替代的作用。人类开发者可以通过将重复逻辑重构为可复用的函数、将相关模块整合,或者在合适情况下复用微服务,来让代码库更具凝聚力。

“AI 的确带来了巨大的价值,但今年的数据也证明了,那些目光长远的开发者在按下 ‘Tab’ 键时,往往也会多几分隐隐的担忧。”Harding 总结道。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI编码工具 代码质量 技术债务 代码复用
相关文章