最新研究发现GitHub Copilot这样的AI辅助编程工具普及后,代码数量提升了,但是质量下降了!
在 2023 年,程序员绝大部分都使用或者至少听说过 GitHub Copilot 这样的编程辅助工具。在短短不到两年的时间里,Copilot从一个简单的原型迅速成为众多开发者不可或缺的重要工具。
GitHub 已经发布了数份关于 AI 如何影响软件开发的增长和影响的研究。他们的报告声称:开发者在使用 Copilot 时,编码速度提升了“55%”。但是并未提及代码质量和可维护性如何。
所以 GitClear 收集了从 2020 年 1 月到 2023 年 12 月之间的 153 百万行代码变更记录,他们重点关注的是"代码变更率"、"代码移动" 和 "代码复制/粘贴"。结果发现:
- 代码变动率增大: 代码变更率指在编写后不到两周就被修改或撤销的代码行所占的比例'使用 Copilot' 与 '将错误代码提交到代码仓库' 之间存在着明显的相关性。
- 代码移动量减少:意味着重构和重用的减少,考虑到标记为'复制/粘贴'的代码的增长,几乎可以确认,当前的AI助手的实现方式在一定程度上阻碍了代码的重用。它们提供的是一键式的复制现有代码的功能,而不是鼓励重构和尽量不重复自己(DRY)的编码方式。
- 复制/粘贴代码增多:预示着未来的烦恼,可能没有什么比复制和粘贴的代码更能威胁到代码的长期可维护性。实际上,当非关键行的代码被重复时,代码作者实际上是在说'我没有时间去评估之前的实现'。他们选择重新添加代码,而不是重用,这样一来,如何合并实现重复功能的代码路径就成了未来维护者的麻烦。
GitClear 用了个形象的比喻来描述:“AI 生成的代码更像是一位频繁更换工作的合同工写的临时代码”
这个结论还是比较符合实际情况的,生成代码容易,未来维护还是个让人头疼的问题,而 AI 现在还不能帮助我们维护代码。
这篇报告的完整译文:
https://t.co/ygudCJTRxs
点击图片查看原图
点击图片查看原图