尽管AI可能提高生产效率 但它也可能对代码质量产生负面影响
软件开发是人工智能(AI)早期的使用案例之一。许多大大小小的公司已经开始使用诸如GitHub Copilot等工具来加速新应用程序和服务的开发过程。
然而,根据西雅图的开发者分析工具GitClear的最新研究项目,尽管AI可能提高生产效率,但它也可能对代码质量产生负面影响。
该研究分析了1.53亿行代码的变化情况,比较了2023年与AI对代码生成不那么相关的前几年的变化。其中一些发现包括:
- “代码变动频繁”,即在作者编写不到两周后被抛弃的代码行的百分比正在上升,并预计在2024年将翻倍。该研究指出,更多的代码变动意味着将更高的错误风险部署到生产环境中。
- “复制/粘贴代码”的百分比增长速度快于“更新”、“删除”或“移动”代码。“在这方面,AI生成的代码的组成方式类似于一个没有考虑将其工作有意地整合到整个项目中的短期开发者,”GitClear创始人比尔·哈丁说道。
- 总结来说,根据哈丁的观点:AI代码助手非常擅长添加代码,但它们可能导致“AI引发的技术债务”。
换句话说,更多的数量并不总是能带来更好的质量。
AI被比喻为“一张全新的信用卡”,它将使我们能够以前无法做到的方式积累技术债务。麻省理工学院的教授阿曼多·索拉尔-莱萨玛在去年《华尔街日报》的一篇报道中谈到了AI编码工具。
AI编码的兴起也可能影响工程师的薪酬。哈丁表示:“如果工程领导者基于代码行数的变化做出薪酬决策,那么这种决策与AI的结合会导致遗憾的代码提交。”他还表示,对开发人员来说,阅读糟糕的代码是工作中最费力的部分。
麦肯锡去年的一项研究发现,AI编码可以带来“大规模的生产力飞跃”,但这取决于任务的复杂性和开发者的经验。“为了保持代码质量,开发人员需要理解构成高质量代码的属性,并促使工具生成正确的输出,”该研究指出。
哈丁之前曾领导过一个名为Bonanza的eBay竞争对手,该公司在去年被收购,以支持Alloy.dev的增长。Alloy.dev是一家拥有15名员工的公司,负责运营GitClear和笔记应用程序Amplenote。
代码量与代码质量的关系:
根据研究结果,代码量的增加并不总是意味着代码质量的提高。AI代码助手能够快速添加代码,但这可能导致团队后续难以维护的问题。因此,在使用AI工具时,需要更加注重代码的质量而非数量。
AI对软件开发的影响:
AI的出现使得软件开发变得更加高效。使用AI工具可以加快开发速度,并提供定制化的代码答案。然而,AI生成的代码可能会增加“技术债务”,导致代码质量下降和错误的风险增加。
AI编码对工程师薪酬的影响:
AI编码的兴起可能会影响工程师的薪酬。如果工程领导者根据代码行数的变化做出薪酬决策,那么与AI结合使用可能会导致提交糟糕代码的行为。因此,薪酬决策应更加注重代码质量而非数量。
如何保持代码质量:
为了保持代码质量,开发人员需要理解构成高质量代码的属性,并及时与AI工具进行交互,以获得正确的输出。开发人员对于代码质量的把控是至关重要的,他们应该在使用AI工具时保持警惕,避免懒散地添加代码。
总的来说,AI工具在软件开发中的应用具有双重影响。它们可以提高生产效率,但同时也可能导致代码质量下降和技术债务的累积。因此,在使用AI工具时,开发团队应该注意维护代码质量,并在需要时及时与AI工具进行交互。