Github Copilot 的优点和局限性 - hrithwik


几个月以来,我一直试图在 GPT3 的帮助下生成代码,最近获得了一个名为Github copilot 的更好产品。
Github Copilot 是一个 VS Code 扩展,它可以自动完成你的代码,还可以通过查看你的注释和函数名称来合成代码。这是使用相同的模型构建的,并在数十亿的公共代码上进行了训练。
当我告诉我的朋友关于 Github Copilot 时,我得到的第一个问题是
它可以解决 DSA 问题并帮助我破解 FAANG xD 吗?
这很有趣,但我想尝试一下,结果令人兴奋。AI 可以解决大部分 DSA 问题,我在这里分享了一些结果 。
后来我尝试在一些实际的开发工作中使用 github copilot,比如编写电子邮件验证,对 github 进行 api 调用,甚至构建一个简单的电子邮件发送客户端。
现在我对Copilot擅长这个动作的局限性和事情有了一些清晰的认识。
 
优点

  • 忘记语法?不用担心。人工智能支持你

在构建一个项目时,我忘记了发送什么响应的状态代码,写下关于它的评论给了我一个结果。此外,我写了很长时间后的 python,有一次我忘记了slicing的语法,这也帮助了我。
  • 可以帮助您进行电子邮件验证和 API 调用

生成 用于调用某些 API 的简单函数并编写一些正则表达式代码 而无需学习或依赖文档真的很容易。(初学者不推荐)。
  • 模板代码

它还可以帮助您获得像 express 样板代码一样的东西,并且还帮助我编写了一些 mongo 方案。

总的来说,我只是喜欢 Github Copilot 可以无缝地向您展示有关 vs 代码的建议。做得漂亮
 
缺点
用于第一代/测试版产品的 Github Copilot 太好了。但是网上有很多偏颇的文章,所以我也只是想展示另一面。

  • 不遵循最佳实践

合成的代码并不总是遵循最佳实践,或者没有经过优化以将其用于后端开发。就像在 Javascript 中,它生成var和== 而不是const和===,这会导致不同的错误和阴影。
  • 版本冲突

某些生成的代码可能不适用于您的代码库所在的版本,并可能导致冲突。此外,有时 AI 会发出很多不必要的代码。有经验的开发者绝对可以解决这个问题,但是如果一个新手直接在 AI 的帮助下开始,他会花更多的时间在堆栈溢出上而不是编写实际代码。
  • 奇怪的版权信息

当我尝试生成将链表转换为树的代码时,这就像一个著名的 DS 问题,我开始 AI 开始展示受版权保护的代码,它来自一个叫 Stephen 的人。
 
总结
如果您想创建诸如电子邮件验证或用户架构或 API 请求之类的功能,那就太好了,因为它有足够的数据,但同样,某些代码可能效率不高。它可以帮助您破解 DSA算法问题?它可以帮助您根据需要提供积木。它会取代人类吗?它是一个副驾驶,让您的生活更轻松。您是能够理解人类叙事和故事以从代码构建产品的飞行员。
在使用它编写我的项目代码 2 个多小时后,我已经习惯了副驾驶,以至于没有使用 github copilot 建议,我真的不知道我的代码接下来要写什么。我有点害怕,这是一个陷阱,使开发人员甚至懒惰。