17611538698
webmaster@21cto.com

新的报告指出人工智能正在侵蚀代码质量

人工智能 0 24 2025-02-28 02:38:15

图片

导读:GitClear 的最新研究基于对 2.11 亿行代码的分析,结果表明人工智能编码助手正在通过增加重复和复制/粘贴代码并减少重构来降低代码质量。

GitClear分析了其自身代码审查工具客户以及开源项目的代码,查看了代码更改(例如添加、删除、移动和更新)的指标。

研究人员发现,2024 年期间,重复行数为 5 行或以上的代码块数量增加了 8 倍。重复代码可能运行正常,但通常是代码质量差的标志,因为它会增加臃肿,表明缺乏清晰的结构,并且当同一代码在一个地方更新而在另一个地方不更新时,会增加出现缺陷的风险。

GitClear 补充说,与复制/粘贴相比,从许多不同地方调用的函数更“经过实战考验”。

研究人员还指出,移动代码行数减少了 39.9%。代码移动是重构的证据,重构是在不改变功能的情况下提高代码质量。根据 GitClear 的说法,“将以前的工作整合为可重复使用的模块”的能力是人类程序员相对于人工智能助手的一项重要优势。2024 年是复制/粘贴行数首次超过移动行数的一年。

图片

GitClear 的研究表明,新的代码和复制的代码的数量在增加,但重构的数量却在减少。

GitClear 表示,原因在于代码助手只需按下 Tab 键即可轻松插入新代码块。人工智能不太可能建议在代码的其他地方重复使用类似的函数,部分原因是上下文大小有限,即用于人工智能建议的周围代码量有限。

与 GitClear 的报告形成鲜明对比的是,谷歌的 2024 年 DORA“DevOps 现状”报告声称,人工智能的采用率提高使代码质量提高了 3.4%;但 DORA 报告还指出“交付稳定性估计降低了 7.2%”。

事实证明,这两份报告并没有表面上看起来那么不同。在单个代码块级别,人工智能的帮助可能会提高代码质量;但 DORA 的研究人员表示,由于人工智能允许开发人员更快地交付更多代码,因此很可能以后需要进行更多更改,他们的研究表明,更大的更改“速度更慢,更容易造成不稳定”。

人工智能对编码的影响可以以不同的方式呈现。支持者(和人工智能供应商)可以指出生产力的提高,这是大多数开发人员都认同的,而怀疑者则可以指出人工智能对代码维护的不利影响。

正如谷歌所做的那样,说起来容易做起来难,组织应该制定使用人工智能的指导方针来解决问题;但鼓励不良做法的工具必然会增加不良做法,除非它们得到改进。

作者:万能的大雄

评论