github copilot怎么使用(github copilot教程)
近年来,人工智能发展迅猛,应用在各行各业。尤其是近两年,面向开发者的AI开发工具层出不穷。从这些工具中,我们看到了AI能够给开发者带来的好处。可能性是无止境。本系列文章主要介绍国外Kite、、、微软、国内阿里云Cozy等程序员常用的智能编码辅助工具,并会在后续文章测评中做一些更详细的个人体验对比。
在上一篇文章中,我们介绍了史上最全系列的智能代码补全工具。在本文中,我们将了解一个最近发布的工具。官网首页:
(以下简称)是近期发布的一款智能代码生成插件。它目前支持 IDE 平台,例如 . 它是开发人员的编码工具。它是怎么做到的?本系列上一篇文章提到了GPT-2深度学习模型的使用,而据说耗资千万美元开发的GPT-3模型的使用是基于GPT-3模型通过开源代码。学习之后得到了Codex模型,它有强大的代码生成能力,但是由于模型非常庞大,需要足够的基础设施支持,所以只能通过邀请测试的方式小范围测试。FAQ中的信息显示,未来大面积免费开放的可能性不大,喜欢这款工具的开发者需要做好花钱的准备。
只提供远程服务模式,需要将代码上传到远端,所以如果是企业开发者,可能需要注意数据安全。可以通过代码上下文、注释和语言描述生成方法级代码片段,如下图所示。我们只需要输入代码的功能描述和代码的方法名,就会自动识别代码的上下文,等待2到3秒后就可以生成一个完整的方法片段。
官网的demo例子中提到了三种使用场景:
1.根据代码注释生成代码片段
2.自动填充固定模式的重复代码
3.自动生成单元测试用例,特别是生成Mock数据
的型号。代码生成结果的显示形式与其他工具不同。它采用内联方法。这种方式非常直观的展示了代码生成后的外观。适用于多行代码片段的展示,但这种方式不适用于推荐结果。很多时候只能通过快捷键切换结果,如果开启了自动触发,经常会在我写代码不需要的时候出现,把我正在写的代码挤到最下面,这对我的日常编码非常重要。是一种干扰。
让我们看几个 Java 示例:
1)使用同一个例子,可以整行补全,自动填入参数。
2)也能自动识别上面出现过的变量及其方法,而且没有语法错误。
3)虽然前面的例子补全效果比较好,没有语法错误,但是很多时候还是会生成语法错误的代码片段。如下图,在本地项目中创建了类,类下只有一个方法,但是生成了print方法,因为是从亿万开源代码中学习的,代码信息无法及时了解本地项目。所以本质上还是一样会出现语法错误的问题,只是因为模型比较强大,出错的概率比较小,但是一旦涉及到本地项目的代码,出错的概率就会非常高。
4)编写单元测试非常方便。可以帮我生成大量的测试数据,减少我对Mock数据的担心。
5)方法级代码生成也有很多错误,比如生成了读取XML文件的代码,结果是读取Excel的代码,可能是因为类开头有很多Excel相关的API .
如果我把它去掉,那么它就无法生成,它只会根据评论生成另一个评论。
有时候它生成的代码会陷入无限重复,比如下图中的无限循环。
总的来说,是一款非常好用的代码生成工具,适合在常用工具代码、算法、单元测试等场景中生成高频代码。但是,业务代码的生成仍然存在语法错误。遗憾的是,只提供了一种远程服务模式,以目前的技术路线,不太可能提供离线模式。这可能带来潜在的隐私和代码数据泄露风险。希望以后收费不要太贵。