GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

开篇寄语

让智能AI自己写代码在不久的未来似乎是可以预见能够实现的了,虽然当下该项目属于辅助程序员写代码的,但是随着时间和技术的累积,实现智能写代码也不是不可能。微软收购的 GitHub 今天宣布了新的 GitHub Copilot 技术预览,GitHub Copilot 可以通过 AI 帮助开发者自动补全代码或函数,甚至是测试用例,更优写法等,目前准确率在50%左右,还得需要人工检查才能放心使用……

官方申请试用地址

内容详情

GitHub Copilot 是微软 GitHub 和 OpenAI 合作开发的,由 OpenAI Codex 公开代码训练,将支持 Visual Studio Code 和 Codespaces(在线版 Code),可以根据已有的代码或注释来自动生成代码,支持 Python、JavaScript、TypeScript、Ruby 和 Go 语言,并能够理解其他语言。

但 GitHub 也提醒,Copilot 功能生成的代码并非是最完美的,仍需要严格的测试和审查。

以一个直观的例子演示:

输入了一个函数的名称和文档字符串,该函数应该“将文本写入文件 fname”:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

函数的灰色主体完全是 Copilot编写的!只是按了键盘上的 Tab,建议就被接受并插入到我的代码中。

这当然不是第一个“人工智能驱动”的程序合成工具。 2018 年 GitHub 的自然语言语义代码搜索演示了使用简单的英语描述查找代码示例。 Tabnine 提供“AI 驱动”的代码补全已经有几年了。 Copilot 的不同之处在于,它可以根据代码文件的完整上下文生成完整的多行函数,甚至生成文档和测试。

还有行业人士表示,这代表 AI 开始在编程工作中发挥作用,软件开发领域的「第三次工业革命」似乎正缓缓揭开序幕。

GitHub 给 Copilot 的官方定义是「AI 结对编程员」。「结对编程」(pair programming)是一种软件开发方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员。两个程序员经常互换角色。GitHub 认为 Copilot 是进化版的「结对编程」,在未来帮程序员查缺补漏的,将会换成 AI。

总之,功能很强大就是了。

申请测试

当用邮箱注册成功后,界面如下图所示:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

今天(2021年10月27日)检查邮箱,发现了Github Copilot给我发的邮件,大意是说我已经拥有该体验资格,可以前往以下这个网址下载体验了:

目前,该项目支持两种编辑器内使用:

是一款插件,需要在编辑器中安装该插件才能使用,该插件是这个样子的:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

有了邀请资格就可以使用了,安装很快就完成,之后会登陆Github进行授权。

支持比较完善的编程语言:

说一下使用方法,大意就是用注释输入一段话,你想让它帮你做什么,比如伯衡君就想让构建一个名为auto的类和方法,如下所示:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

当按下tab键后,就会将代码生成,如果不是希望的代码,可以按下Alt+]或者Alt+[进行代码的选择,甚至可以按下Ctrl+Enter查看所有的预备选项。

//construction class for auto with methods to get and set the auto's make, model, year, and color
class Auto {
    constructor(make, model, year, color) {
        this.make = make;
        this.model = model;
        this.year = year;
        this.color = color;
    }
    getMake() {
        return this.make;
    }
    getModel() {
        return this.model;
    }
    getYear() {
        return this.year;
    }
    getColor() {
        return this.color;
    }
    setMake(make) {
        this.make = make;
    }
    setModel(model) {
        this.model = model;
    }
    setYear(year) {
        this.year = year;
    }
    setColor(color) {
        this.color = color;
    }
}

又比如,比较两个日期相差多少天,如下图所示:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

又比如,从数据库接收数据,如下图所示:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

总之,只要你能想得到的内容,它都会给你一个合理化的建议,能够让你的编程速度提速不少。

这里有一个特别棒的设置,就是在给予提示的时候,按下Ctrl+Enter能够看到所有的备选项,而不会让编程千篇一律,如下图所示:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

在编程的时候,即使没有注释,它也会给你合理化建议,这个是比较大的惊喜。

温馨提示

官方给出了很多具体例子,可以参看这个地址:

GitHub Copilot帮程序员自动写代码以及实际体验心得体会与玩法

展开阅读全文

页面更新:2024-04-19

标签:程序员   代码   微软   心得体会   玩法   注释   大意   函数   插件   两个   测试   官方

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top