前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >GitHub Copilot代码质量争议升级,官方数据发声!你站哪边?

GitHub Copilot代码质量争议升级,官方数据发声!你站哪边?

作者头像
程序视点
发布2025-01-17 20:15:55
发布2025-01-17 20:15:55
1060
举报
文章被收录于专栏:程序小小事程序小小事

GitHub Copilot代码质量如何?

自 GitHub Copilot 向公众发布以来的两年里,AI 从根本上改变了软件开发,这具有里程碑式的意义。

在两年来,GitHub Copilot 帮助开发人员的编码速度提高了 55%。之前的研究还表明,85% 的开发人员对他们的代码更有信心,88% 的开发人员对使用 GitHub Copilot 的流程更有信心。

但仍然有个问题争论不休:客观上,使用 GitHub Copilot 编写的代码质量是好是坏?

为了回答这个问题,官方研究员进行了一项随机对照试验,以了解使用 GitHub Copilot 编写的代码,在功能、可读性、可靠性、可维护性、简洁性和可能获得批准等方面的程度。

GitHub Copilot代码质量研究

在这项研究中,官方招募了 202 名具有至少 5 年经验的开发人员。一半被随机分配了 GitHub Copilot 访问权限,另一半被指示不要使用任何 AI 工具。

所有参与者都被要求完成一项编码任务,为 Web 服务器编写 API 端点。然后,通过单元测试和开发人员进行的专家评审来评估代码。

研究结果表明,使用 GitHub Copilot 编写的代码具有增强的功能和可读性,质量更好,并且获得批准率更高。

研究的主要发现

增强功能

如果代码不起作用,就不能说它是高质量的代码。因此,我们通过分析代码通过了多少单元测试来衡量它的功能和质量。

我们发现,使用 GitHub Copilot 编写的代码通过的测试要多得多 (p=0.002)。事实上,具有 GitHub Copilot 访问权限的开发人员通过研究中的所有 10 个单元测试的可能性要高出 56% (p=0.04)。

这意味着使用 GitHub Copilot 可以帮助开发人员编写功能更强大的代码。

提高可读性

编写代码并通过前述所有 10 个单元测试的开发人员被随机分配对匿名提交的内容进行盲审,包括使用和不使用 GitHub Copilot 编写的代码。

审阅者发现,使用 GitHub Copilot 编写的代码具有较少的代码可读性错误

我这是对开发人员逐行代码审查的分析的结果:

代码错误的平均值

平均代码行数

每个错误代码的平均行数

差异

使用GitHub Copilot

4.63

84.3

18.2

13.6

不使用GitHub Copilot

5.35

85.7

16.0

-11.9%

这使开发人员在使用GitHub Copilt后,平均可以多编写 13.6% 的代码行数,而不会遇到可读性问题。

这可以转化为实时节省,因为代码中的每一个错误都需要开发人员采取行动。也就说,如果不使用 GitHub Copilot的情况下,团队可能会面临多达 13% 的评论或建议需要解决,这些评论或建议会随着时间的推移而累积,花费的时间成本会更多。

总体上更好的代码质量

开发人员发现的差异不仅限于每行代码的错误。使用 GitHub Copilot 编写的代码和未使用GitHub Copilot编写的代码在可读性、可靠性、可维护和简洁性也有些许的差异。

因变量

平均差值

P值

可读性

3.62%

0.003

可靠性

2.94%

0.01

可维护性

2.47%

0.041

简明程度

4.16%

0.002

虽然差异比较少,但它们在统计上具有显著性,并且确实有助于更好的代码库。

更高的批准率

研究还发现,开发人员批准使用 GitHub Copilot 编写的代码的可能性也高出 5%。

在实际设置中,这意味着使用 GitHub Copilot 的开发人员编写的代码可以更快地合并,这将加快修复错误或部署新功能的时间。

结尾

那么,上述研究数据对 GitHub Copilot 如何提高代码质量有何看法呢?

虽然使用 GitHub Copilot 组的提交数量和代码行更改量明显更高,但平均提交大小略小。这表明 GitHub Copilot 使开发人员能够迭代代码以提高其质量。

假设,开发人员无论如何都要花费较少的时间使他们编写的代码正常运行(即我们假设使用或不使用GitHub Copilot编写的代码都需要开发人员花费时间来使代码正常运行),那么,使用GitHub Copilot能编写出更多准确的代码,这为开发者节省了更多的时间,从而能够更专注于改进代码的质量。

GitHub Copilot编写的代码在可读性、可靠性、可维护和简洁性上的优越性,能给开发者带来更多的信心,使开发者能更轻松的进行迭代,而不必担心导致代码错误。

参阅:GitHub Copilot 是否能提高代码质量?数据如下 - The GitHub Blog --- Does GitHub Copilot improve code quality? Here’s what the data says - The GitHub Blog

以下是官方的结论:

作为第一项检查 GitHub Copilot 对代码质量影响的对照研究,它表明 GitHub Copilot 有助于编写高质量的代码。我们假设其他研究可能没有发现 GitHub Copilot 的代码质量有所提高,不是因为该工具本身,而是因为开发人员可能缺乏关注质量的机会或动力。这些数据建立在我们之前的研究基础上,表明 GitHub Copilot 是一款功能强大的产品,可以帮助开发人员更快地编写代码并提高工作满意度,并使团队能够快速行动并增强他们的创造力和创新能力。

最后

这里,非常感谢 Lizzie Redford 博士和 Sida Peng 博士对本研究的研究设计和统计分析的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序视点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitHub Copilot代码质量如何?
  • GitHub Copilot代码质量研究
    • 研究的主要发现
  • 结尾
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档