paint-brush
软件开发中的人工智能:借助 ELEKS 研发团队的见解探索 GitHub Copilot经过@elekssoftware
757 讀數
757 讀數

软件开发中的人工智能:借助 ELEKS 研发团队的见解探索 GitHub Copilot

经过 ELEKS6m2024/02/06
Read on Terminal Reader

太長; 讀書

随着 ELEKS 探索 GitHub Copilot 的创新功能,了解人工智能在软件开发中的作用。
featured image - 软件开发中的人工智能:借助 ELEKS 研发团队的见解探索 GitHub Copilot
ELEKS HackerNoon profile picture
0-item
1-item

人工智能正在彻底改变软件开发,使其更加高效、富有成效和创新。在本文中,我们探讨了人工智能在软件开发中的影响,深入探讨了 ELEKS 研发团队对 GitHub Copilot 进行的调查中获得的见解。


随着软件开发世界的不断发展,人工智能的作用变得越来越重要。凭借减少编码所需的时间和精力等优势,人工智能在软件开发中成为当今的热门话题也就不足为奇了。


92% 的美国开发者已经在工作中和工作外使用人工智能编码工具。 - GitHub


70% 的开发人员认为,人工智能编码工具将为他们的专业工作带来明显的优势,包括提高代码质量、缩短完成时间和增强事件解决能力。 - GitHub


五分之四的开发人员希望人工智能编码工具能够使他们的团队更具协作性。 - GitHub


虽然人工智能还没有达到无需人工输入即可独立创建、测试和推出软件产品的阶段,但与过去相比,它已经大大加快了整体周转时间。


许多人工智能驱动的工具可以通过生成和自动完成代码以及检测和修复错误来帮助开发自定义应用程序。 ELEKS 研发团队彻底评估了这样一个工具 - GitHub Copilot - 评估其对开发人员任务、完成持续时间以及所提供建议的质量标准的影响。让我们仔细看看。

什么是 GitHub Copilot?

GitHub Copilot 是一个代码自动完成和生成工具。它基于 OpenAI Codex 构建,并在公共 GitHub 存储库上进行训练。因此,它可以为任何编程语言提供代码建议。然而,提案的质量取决于基于特定编程语言和框架的公共存储库的数量。


GitHub Copilot 使用集成开发环境 (IDE) 插件处理程序代码。目前仅支持以下 IDE:

  • 视觉工作室代码
  • 视觉工作室
  • 尼奥维姆
  • JetBrains 的所有 IDE

ELEKS 的 GitHub Copilot 调查概述

本调查旨在探讨使用 Copilot 对开发速度和质量的影响。


为了进行这项研究,启动了一个小型宠物项目作为各种假设的测试场。我们的团队由四名熟练的中级开发人员组成,他们拥有 React、Redux、TypeScript、Jest、Vite、PHP、Symfony 和 Codeception 方面的专业知识,我们开始了调查,并定义了我们的目标和方法如下。

目标

方法

使用 Copilot 时评估开发人员的能力和绩效之间的依赖性

我们选择Symfony框架进行后端开发。后端团队对该框架没有丰富的经验。
为了评估后端解决方案的质量,Symfony 专家参与了代码审查。该专家还开发了一种超出典型结构的基本项目结构,并用于大型商业项目。

调查对典型开发人员任务的影响

在项目开始之前,我们创建了一个 WBS,涵盖了商业项目中开发人员的典型工作。此外,我们还进行了任务评估会议。

调查受欢迎程度对编程语言和框架的影响

我们开发了一个具有测试覆盖率的 Web 应用程序。

评估对任务完成时间的影响

我们对项目的各个任务进行了初步估计。

提升研究成效

我们在每日同步期间在团队内进行了知识共享会议。

探索建议的质量

我们测试了 Copilot 如何处理非经典且更复杂的项目结构。



ELEKS 的 GitHub Copilot 调查的主要发现

ELEKS 对 GitHub Copilot 的调查得出了几项重要发现,揭示了该工具的功能和优势。这是更详细的描述:


请注意,调查结果基于团队的主观反馈、对其工作的观察以及对其解决方案的代码审查。

GitHub Copilot 有两种操作模式:

  1. 代码自动完成模式——几乎总是对性能产生积极影响。
  2. 基于带有提示的注释的代码生成模式 - 仅适用于典型的代码结构。在生成业务逻辑或非典型解决方案时可能会适得其反,因为分析建议的代码变体需要花费大量时间。

GitHub Copilot 代码建议的质量取决于以下因素:

  • 所选技术堆栈在公共存储库中的受欢迎程度。技术或语言越流行,GitHub Copilot 建议的质量就越高。
  • 代码结构和应用程序架构。您的解决方案越典型,GitHub Copilot 提供的建议就越有效。这在项目开发之初尤其明显。

GitHub Copilot 的其他优势:

  • 随着时间的推移,代码建议的质量会提高。 GitHub Copilot 学习并适应项目结构、代码风格以及项目技术解决方案的典型方法。
  • 积极影响开发人员的工作满意度。 GitHub Copilot 承担了一部分常规、典型且无聊的任务。开发有趣任务和常规任务之间的比例发生变化,这增加了开发人员的舒适度。

一般团队调查结果:

  • 该工具对代码质量没有任何影响——无论是积极还是消极。我们认为,目前它还不能取代代码审查过程、开发人员完成的手动代码测试、运行自动测试、安全测试等。
  • 有效性取决于开发人员在给定技术堆栈中的能力。开发人员的技能越好,该工具就越有效。
  • GitHub Copilot 对于学习新技术的价值非常值得怀疑。
  • 该团队的印象是,如果所有与代码相关的文件都在 IDE 中打开,则代码建议会变得更好。
  • 与任何其他工具一样,GitHub Copilot 需要一定的技能。团队练习得越多,收到的积极反馈就越多。
  • 关于性能提升的反馈因技术堆栈、专家的能力水平和主观原因而异。


团队成员的生产力平均提高 5-10%。 - ELEKS研发团队


顺便说一句,在项目过程中,团队在 GitHub Copilot 中遇到了几个错误。例如,Copilot 根据在另一个 IDE 窗口中打开的另一个项目的代码提出了代码建议。它提供了语法错误的代码。 Copilot 与某些也具有代码自动完成功能的插件(内置或由第三方添加)的功能冲突。

结论

GitHub Copilot 是一个强大的工具,可以对开发速度和开发人员工作满意度产生积极影响。与任何其他开发工具一样,它需要时间来掌握。


目前,个人每月许可证费用仅为 10 美元,而商业计划的价格为每月 19 美元。 GitHub Copilot 对于项目的使用无疑会带来经济效益,特别是对于中等及以上能力水平的专家而言。


该团队预测,随着 GitHub Copilot 使用经验的增长,开发速度可以提高 5-25%,具体取决于技术的普及程度和开发人员的能力水平。 GitHub Copilot 保证不会减慢开发速度,因为开发人员将逐渐获得专业知识并了解何时使用该工具有益、何时不有益。


总之,人工智能对软件开发的影响是不可否认的,例如 GitHub Copilot 等工具。总体而言,GitHub Copilot 等工具无法取代开发人员,但可以作为提高开发人员舒适度和生产力的宝贵工具,为日益人工智能驱动的世界中的软件开发发展做出贡献。


开启高效软件开发流程和成功成果的道路, 请联系 ELEKS 专家


也发布在这里