程序员的内卷,一行注释就能生成代码!GitHub原生AI代码生成工具Copilot上线
共 2354字,需浏览 5分钟
·
2021-07-15 17:47
近日由GitHub、微软、OpenAI 三家世界级企业联合打造的AI编程辅助工具GitHub Copilot正式上线了。
官方网址:https://copilot.github.com/
GitHub Copilot是什么?它能做什么?
GitHub Copilot 可以根据程序员的注释写代码,自动补全代码,提供与代码匹配的测试,还能生成多个备选方案的代码供选择。它可以帮助开发者用更少的时间来更快地编写出代码,GitHub 表示,GitHub Copilot 生成的代码大部分是原创的(这点有待考证)。
简而言之就是GitHub Copilot可以:
自动补全代码
根据注释自动完成代码
自动生成与代码匹配的测试
生成多个代码功能替代方案
相比于市面上一些编程辅助工具,Copilot 的上下文理解能力要强大得多。无论是在文档字符串、注释、函数名还是代码主体中,Copilot 都能根据编程者已写出的上下文生成匹配的代码。
Copilot 能根据注释写出代码,这一点是程序员最关心的功能,毕竟关系到自己的饭碗,如果真的可以写注释自动完成不错的逻辑代码,不知道对程序员来说是好是坏。编程者给出一条描述代码逻辑的注释,GitHub Copilot 就能自动生成代码
根据注释自动完成代码
在编程过程中,有些代码的格式和内容非常相似,重复编写耗时且无聊。现在 GitHub Copilot 能够帮编程者解决这个问题,将简单重复的代码编写部分自动化
自动补全代码
软件开发的过程中,除了编写代码,软件测试也是非常重要的,对一个代码项目起到支撑的作用。导入一个测试包,其余的测试代码 GitHub Copilot 就能够帮开发者完成
自动生成与代码匹配的测试
在编程中,同一个函数常有多种实现方法,编程者通常会根据代码的实现效果和运行性能选择最合适的方法。编写多种实现需要花费时间和精力,现在使用 GitHub Copilot 一键就能搞定,如下图所示,点击 Next 和 Previous 就能查看多种实现方法,点击 Accept 选中其中一种
生成多个代码功能替代方案
GitHub Copilot是如何工作的?
Powered by OpenAI Trained on billions of lines of public code, GitHub Copilot puts the knowledge you need at your fingertips, saving you time and helping you stay focused.
根据官方的介绍 Copilot 是由 OpenAI 在数十亿行公共代码上训练基础上完成的,由 OpenAI 开发的全新 AI 系统 OpenAI Codex 提供支持。
OpenAI Codex 在人们如何使用代码方面拥有广泛的知识,并且在代码生成领域显著优于 GPT-3 ,部分原因在于该系统是在包含大量公开源代码的数据集上训练的。更具体地,Codex 的训练集中包含了提取自 GitHub 的 TB(terabyte)级公开可用代码以及英语语言示例。
由于是在公开可用源代码和自然语言上训练,Codex 可以同时理解编程语言和人类语言。因此,在整个实现过程中,Copilot 编辑器扩展将开发者的注释和代码发送至 Copilot 服务端,然后使用 Codex 生成和建议单行代码和整个函数。
GitHub Copilot支持哪些语言?怎么使用?
GitHub Copilot 适用于广泛的框架和语言。技术预览版对 Python、JavaScript、TypeScript、Ruby 和 Go 的表现尤其出色,但它可以理解数十种语言,并且可以帮助您找到解决几乎所有问题的方法
前期想使用GitHub Copilot只有2种方法:
使用Visual Studio Code中的GitHub Copilot扩展插件。
使用GitHub 官方的GitHub Codespaces
(https://github.com/features/codespaces)
GitHub Copilot真实效果如何?
官方网站给出的用户使用评价我觉着不能全信
Trying to code in an unfamiliar language by googling everything is like navigating a foreign country with just a phrase book. Using GitHub Copilot is like hiring an interpreter.
Harri Edwards // OpenAI
GitHub Copilot discovered that a test file I was working in was missing a specific test and suggested and wrote the test for me.
Kate Studwell // GitHub
这位是GitHub的人
都是自己人在说自己的产品很好怎么怎么样不错云云,很有 “王婆卖瓜,自卖自夸” 的感觉
具体使用效果如何,大家可以自己测试测试在下方留言谈谈自己的实际使用感触。