Github Copilot 的补强工具Github Copilot Labs的常用功能介绍

news2024/11/23 14:51:06

一、什么是Github Copilot Labs

Github Copilot Labs是由GitHub推出的一款基于人工智能技术的代码协作工具,旨在协助开发者更加快速、高效地编写代码。该工具使用了机器学习技术,通过学习大量的开源代码和编写实践,提供了对于代码变量、函数、类的自动补全和提示,甚至可以自动编写代码段。
Github Copilot Labs通过提供智能建议和自动补全的方式,帮助开发者节省时间和精力,同时还可以让开发者更快、更准确地编写高质量的代码。
值得注意的是,Github Copilot Labs虽然非常智能和强大,但是仍处于实验阶段并未完全上线,目前仅针对少量的编程语言和集成开发环境开放

二、安装注册

目前这个插件还在实验阶段,上线的插件市场有限,下面介绍一下如何在vscode中安装使用
打开vscode --> 点击插件市场 --> 搜索github copilot labs --> 点击安装
在这里插入图片描述
安装完成之后,右下角会有弹框提示让你去注册,点击链接,跟着提示一步一步注册就可以了
在这里插入图片描述
成功之后,vscode中左侧会有一个机器人的logo,这个就是github copilot labs工具

三、常用功能介绍

1. EXPLAIN

(1) explain code 代码解释功能
在这里插入图片描述
如上图,EXPLAN模块,下拉框中有五个模块,默认就是Explain code代码解释功能
在这里插入图片描述
选中一部分代码,点击Ask Copilot,就会生成对当前的代码的解析。

中文解析方法:
默认是英文的,想要中文的,可以点开Advanced,里面输入‘请用中文说明’,然后再点击Ask Copilot就可以了,如图:
在这里插入图片描述
(2) show example code 举例说明
这个功能就是比如你看到一个别人封装的比较复杂的函数,不知道具体如何使用时,就可以用这个功能试试,如下:
在这里插入图片描述
可以看到copilot已经给我生成了一个axios的调用实例

(3) Code does following 代码执行步骤说明
这个功能是介绍当前代码具体的逻辑执行过程的如下:
在这里插入图片描述

中文的方式和Explian code一样,如下:

在这里插入图片描述

2. LANGUAGE TRANSLATION 语言转换

这个模块的功能是将选中的代码转换成其他语言,
如图将js语言转换为python
在这里插入图片描述
在这里插入图片描述
再试一下c语言
在这里插入图片描述
在这里插入图片描述

转java
在这里插入图片描述
如上,都能转换,至于能不能用只有实际测试一下才行。但至少是生成了对应的语言的代码。
我这个实例代码可能不太恰当,大家可以用算法试试,无论什么语言算法的逻辑是一样的。

3. BRUSHES 代码刷子

在这里插入图片描述
有十个功能,接下来我们尝试用一下,
(1) READABLE 让你的代码更具可读性
使用前:
在这里插入图片描述
使用后:
在这里插入图片描述
如上图使用前后对比,它在给我们的代码中加了一下注释,方便我们能搞好阅读代码。

(2) Add Types 添加类型
js语言是一门脚本语言,不同于java这种强类型语言,在函数传参,变量定义时都要有明确的定义。
Add Types 功能,有点类似是将js转换为Ts,为js中的变量声明,函数参数定义都加上了类型。如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(3) Fix Bug 改bug
这个功能我试了下,能改掉一些语法错误,如下:
使用前:
我故意将这个变量名写错,然后点击Fix Bug
在这里插入图片描述
使用后:
在这里插入图片描述
如图:使用了确实将这个变量为我们写正确了。
(4)Debug 调试
这个功能会给我们的代码添加日志,如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(5)Clean 去掉冗余代码
这个功能可以去掉代码中的冗余部分,比如多余的变量声明,不必要的变量赋值,和一些日志输出等。如图:
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
**(6)List Steps **
这个功能有点类似EXPLAIN 中的 Code does following, 他会为代码中的每一步都添加上注释
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(7) Make Robust
这个功能可以让你的代码变得更加健壮,会给代码增加一些非空校验和异常处理,可以解决部分潜在的问题。
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(8)Chunk
这个功能是可以将一个函数抽离成几个通用函数,让代码维护起来更轻松。
改造前:
在这里插入图片描述
改造后:
在这里插入图片描述
(9)Document 生成文档
这个功能可以为当前选中的代码生成说明文档
使用前:
在这里插入图片描述

使用后:
在这里插入图片描述
(10)Custom 自定义
这个就是有点类似问答了,你可以要求copilot将你的代码处理成你想要的样子,如图:
在这里插入图片描述
点击custom右上会有一个弹框,输入你想要让他怎么调整,它会根据你的需求来改变代码

4. TEST GENERATION 生成测试用例

这个功能就是为你写的代码生成一个测试用例,如图:
在这里插入图片描述
这是源代码:

// 写一个深拷贝函数
function deepClone(obj) {
    let newObj = Array.isArray(obj) ? [] : {};
    if (obj && typeof obj === 'object') {
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
                newObj[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key];
            }
        }
    }
    return newObj;
}

这是copilot生成的测试用例

describe('test demo', function() {
    it('test demo.deepClone', function(done) {
        let obj = {
            a: 1,
            b: 2,
            c: {
                d: 3,
                e: 4
            }
        };
        let obj2 = demo.deepClone(obj);
        assert.equal(obj2.a, 1);
        assert.equal(obj2.b, 2);
        assert.equal(obj2.c.d, 3);
        assert.equal(obj2.c.e, 4);
        done();
    })
})

看着有点像那么回事,哈哈哈哈狗头.jpg

总结

以上就是Github Copilot Labs的常用功能了,总的体验来讲,比较靠谱的还是Explain代码解释功能,将一坨复杂逻辑的代码生成白话文,有助于我们更好的理解他人写的代码。
可惜的是,这里面的所有功能,它都有个代码上限,就是每次选择的代码不能太多,有行数限制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物理删除与逻辑删除

目录 一、物理删除与逻辑删除 二、逻辑删除实现 三、API使用方法 四、全局配置参数 一、物理删除与逻辑删除 物理删除:指文件存储所用到的磁存储区域被真正的擦除或清零,这样删除的文件是不可以恢复的,物理删除是计算机处理数据时的一个概…

怎样的年轻化法则,让这个品牌四年净利润复合增速达30%

年轻世代消费者的崛起,从消费层面讲,为市场带来活跃的同时,给品牌带来的是如何转型升级的问题,在众多转型的品牌中,年轻化策略与方式不尽相同。 在2019年至2022年期间,报喜鸟营收复合增速达10%&#xff0c…

iptables防火墙(2)

iptables防火墙(2) 一、SNATSNAT应用环境SNAT原理SNAT转换前条件扩展 二、DNATDNAT应用环境DNAT原理DNAT转换前提条件扩展 三、防火墙规则的备份和还原导出(备份)所有表的规则导入(还原)规则 一、SNAT SNA…

线性回归和预测

目录 1、线性回归 2、R-Squared 1、线性回归 在机器学习和统计建模中,这种关系用于预测未来事件的结果 线性回归使用数据点之间的关系在所有数据点之间画一条直线 这条线可以用来预测未来的值 在机器学习中,预测未来非常重要。比如房价、股票等预测 …

分布式全局唯一id实现-4 springCloud-MyBatis-Plus集成美团分布式全局id(leaf)

前言:美团的leaf集成了db分段生成id和雪花算法生成分布式id,本文对其实现部分细节展开讨论,leaf 的具体实现请参考:https://tech.meituan.com/MT_Leaf.html; 1 使用db分段id: leaf 的分段id本质上是使用了…

5。STM32裸机开发(5)

嵌入式软件开发学习过程记录,本部分结合本人的学习经验撰写,系统描述各类基础例程的程序撰写逻辑。构建裸机开发的思维,为RTOS做铺垫(本部分基于库函数版实现),如有不足之处,敬请批评指正。 &…

二本4年测试经验,3面阿里艰苦经历(定薪25K),上岸那天我哭了...

前言 4月准备跳槽,先后面试了各大小公司,拿了一些小offer,面试的公司大部分都能过,但是做人总是要用梦想吧,没有梦想和咸鱼有什么区别,最终把目标放在了阿里,准备了大概3个月的时间&#xff0c…

mysql45讲笔记

不一定要都学,有些感觉用不到,有选择的学!!! 文章目录 mysql45讲1.mysql基础架构2.mysql日志系统3.事务隔离4.索引类型1.哈希表2.有序数组3.二叉搜索树4.B 树 5.索引重点概念覆盖索引索引下推最左前缀原则 6.全局锁表级…

ERP系统是什么?ERP实施顾问怎么做?

ERP实施顾问怎么做? 首先想要从事相关行业,必须先了解什么是ERP,ERP系统功能模块是怎样的,而后才能进行ERP实施顾问的工作。 一、ERP是什么 ERP系统主要是干什么的?ERP系统,简单理解就是一套记账、做账软…

“全球金融科技大会——中国金融业开源技术应用与发展论坛”在北京举行

3月28日,“全球金融科技大会——中国金融业开源技术应用与发展论坛”在北京新动力金融科技中心举行。 会议现场 人民银行科技司二级巡视员杨富玉,开放原子开源基金会理事长孙文龙,中国金电党委书记、董事长周逢民为大会致辞。北京市西城区区…

(转载)MATLAB智能算法30个案例分析(3)——基于遗传算法的BP神经网络优化算法

1 理论基础 1.1 BP神经网络概述 BP网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。BP算法是Rumelhart等人在1986年提出来的。由于它的结构简单,可调整的…

docker+redis哨兵模式(一主二从三哨兵)- docker-compose

一、docker-compose 安装: sudo apt-get update #安装最新的docke-ce sudo apt-get install docker-ce # 下载最新的docker-compose curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-uname -s-uname -m -o /usr/local…

面试字节,过关斩将直接干到 3 面,结果被吊打了?

人人都有大厂梦,对于软件测试员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让…

网络通信概述 -了解网络编程,什么是ip和端口,url

网络:网络就是一种辅助双方或者多方能够连接到一起的工具。 左:单机游戏(无网络) 右:网络游戏 网络编程:网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信。…

一名8年测试工程师,因为偷偷接私活被····

接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后…

【WAF绕过】姿势总结(一)

【WAF绕过】姿势总结(一) 方法 Payload 编码 1、进行url编码(少数waf不会进行URL解码,部分waf进行一次url解码>可对payload进行二次url编码) 2、Unicode编码:单引号 %u0027、%u02b9、%u02bc 3、部分十六进制编…

Python可视化神器Seaborn入门系列——kdeplot

Seaborn是基于matplotlib的Python可视化库。 它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。但应强调的是,应该…

ChatGPT 火爆全球,我们能抓住的下一个风口在哪?

中国互联网行业正面临着巨大的压力和挑战,但也孕育着新的发展机遇。当下正值ChatGPT火爆,整个互联网行业充满了机遇和挑战,身处其中的我们能抓住什么呢? 思你所思,帮大家整理出了五大风口!希望对大家有所帮…

html SpeechSynthesis文字转语音

web 页面使用speechSynthesis实现文字转语音 网页语音 API 的SpeechSynthesis 接口是语音服务的控制接口;它可以用于获取设备上关于可用的合成声音的信息,开始、暂停语音,或除此之外的其他命令。 属性 SpeechSynthesis 也从它的父接口继承属…

腾讯云服务器选择购买流程(一步步详细配置)

腾讯云服务器购买流程直接在官方活动上选择比较合适,在云服务器CVM或轻量应用服务器页面自定义购买费用比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服…