GitHub Copilot AI帮你自动完成大量编码


GitHub Copilot 是一个 AI 配对程序员,可帮助您以更少的工作更快地编写代码。GitHub Copilot 从评论和代码中提取上下文,并立即建议单个行和整个函数。GitHub Copilot 由 OpenAI Codex 提供支持,OpenAI Codex 是 OpenAI 创建的新 AI 系统。GitHub Copilot 技术预览版作为 Visual Studio Code 扩展提供。
OpenAI Codex 接受过公开源代码和自然语言的培训,因此它理解编程和人类语言。GitHub Copilot 编辑器扩展将您的评论和代码发送到 GitHub Copilot 服务,然后该服务使用 OpenAI Codex 来合成和建议单个行和整个函数。
无论您是在使用新语言或框架工作,还是只是在学习编码,GitHub Copilot 都可以帮助您找到自己的方式。解决错误,或学习如何使用新框架,而无需花费大部分时间浏览文档或搜索网络。
GitHub Copilot 会尝试了解您的意图并尽可能生成最好的代码,但它建议的代码可能并不总是有效,甚至没有意义。虽然我们正在努力使 GitHub Copilot 变得更好,但 GitHub Copilot 建议的代码应该像任何其他代码一样经过仔细测试、审查和审查。作为开发人员,您始终需要负责。
GitHub Copilot 在提出建议时使用当前文件作为上下文。它尚未使用您项目中的其他文件作为综合输入。
GitHub Copilot 并未实际测试其建议的代码,因此该代码甚至可能无法编译或运行。GitHub Copilot 只能保存非常有限的上下文,因此即使是超过几百行的单个源文件也会被剪裁,并且只使用紧接在前面的上下文。GitHub Copilot 可能会建议使用旧的或已弃用的库和语言。您可以在任何地方使用该代码,但风险自负。
 
具体功能:

  • 将注释转换为代码。 写一条评论,描述你想要的逻辑,让 GitHub Copilot 为你组装代码。
  • 自动填充重复代码。 GitHub Copilot 非常适合快速生成样板和重复代码模式。给它一些例子,让它生成其余的!
  • 无需辛苦的测试。 测试是任何强大的软件工程项目的支柱。导入单元测试包,让 GitHub Copilot 建议与您的实现代码匹配的测试。

GitHub Copilot 现已提供 Visual Studio Code 扩展。  但是目前可接受测试的名单是限制的。

黑客新闻讨论
过去 2 周我一直在使用 alpha版本,这让我大吃一惊。Copilot 猜测我想写的确切代码大约有十分之一,其余时间它会建议一些相当好的东西,或者完全不合适。但是当它猜对时,感觉就像是在读我的心。
这真的很像结对编程,即使我是一个人编码。我对自己的代码有更好的理解,并且我倾向于为我的方法提供更好的名称和描述。我编写了更好的代码、文档和测试。
Copilot 使我成为了更好的程序员。不开玩笑。这是一个巨大的成就。感谢 GitHub Copilot 团队!
 
我也已经使用 Alpha 大约两周了。GitHub Copilot 似乎确切地知道我接下来要输入的内容给我留下了深刻的印象。有时它甚至会建议我要查找的代码,例如选择随机十六进制颜色的片段或使用所有常见图像 mime 类型完成数组。
Copilot 在处理 React 组件时特别有用,它可以做出非常准确的预测。我看到像 Copilot 这样的技术成为程序员工具带中不可或缺的一部分,类似于许多人的 IDE 自动完成。
我还看到它改变了程序员记录他们代码的方式。使用 Copilot,如果您在开始实施之前编写了非常好的描述性评论,它可以更好地建议正确的代码,有时甚至会为您编写整个函数。
  
我也已经使用 Alpha 两周了。GitHub Copilot 似乎完全知道我想要输入的内容,这给我留下了深刻的印象。它甚至不经常建议我要查看的代码,例如上下文菜单的片段或使用所有罗马尼亚邮政编码完成数组。Copilot 在处理 Angular 组件时特别有用,它可以做出令人着迷的预测。我看到像 Copilot 这样的技术成为程序员工具带的重要组成部分,类似于许多人和程序员的 IDE 自动完成。
我还看到它改变了人们和程序员记录代码的方式。有了 Copilot,如果你在开始实施之前写了一个非常漂亮的评论,它会写出正确的代码,有时它甚至会编写整个函数 para ti。
 
阅读这个帖子,在我看来,AI 对像网站前端这样的“样板繁重”编程是一种威胁,帮助开发人员更快地完成“无聊”的重复代码似乎是提高我们的生产力并使我们有价值的好方法。
 
借助 VSCode、Github 和 OpenAI 的一些帮助,微软有望在不久的将来主导开发者生产力工具市场。
看到这些团队很快推出非常好的静态分析和自动代码审查工具,我不会感到惊讶。
 
我很好奇在自动完成特定于我的代码库的代码时 Copilot 的相关性如何,例如 Tabnine 会在我输入查询的 db 表名称后立即完成最常用的过滤器。我是 tabnine 的忠实粉丝,因为它提供了这个功能。我更经常希望有人建议一行而不是整个函数,因为我主要是在编写业务逻辑。
 
琐碎的工作将被自动化(例如 CRUD),只有优秀的程序员才能完成更复杂的工作。
 
由于在家工作时桌面设置欠佳,我最近患上了网球肘。Copilot 大大减少了我的击键次数,从而减轻了我的肘部压力。这对我们的健康也有好处!
 
GitHub Copilot 是一个代码合成器,而不是一个搜索引擎:它建议的绝大多数代码都是独特生成的,以前从未见过。我们发现大约 0.1% 的时间,建议可能包含一些来自训练集中的逐字片段。
  
软件开发正在进入第三次生产力变革浪潮。第一次是创建诸如编译器、调试器、垃圾收集器和语言等​​工具,这些工具可以提高开发人员的工作效率。第二次是开源,全球开发人员社区聚集在一起,在彼此的工作基础上进行开发。第三次革命将是在编码中使用人工智能。