前几天收到邮件告诉我可以使用 GitHub Copilot 了,简单地体验了一下。图片中灰色的字体是 Copilot 补全的。
首先试一下直接用“sort”,可以看到联想出的方法使用了 Python 内置的排序
同时也告知了可以用快捷键切换推荐或者接受
既然“sort”用的是默认排序那试试指定算法,可以看到能够联想出指定的算法
好家伙,离谱起来了,输了个“def”就联想出了插入排序
归并排序似乎也没有问题
快排
桶排序
用 Alt
+[
/]
切换推荐可以看到不同的写法
现在排序算法生成完了,需要测试,换两行后
它发现了我想要测试,于是推荐了一些代码用于测试(虽然数据非常不对)
下面是我只按Tab
和Enter
得到的代码
很明显测试用的数据不对劲,选择第 90 行并切换推荐([4, 5, 3, 1, 2]
也是 Copilot 推荐的),更正完第一个之后后续所有测试数据均能够正确联想
运行程序,发现桶排序出错了
更换推荐,这个看起来不错,稍加修改,就好了
忘了最重要的冒泡排序,也没有问题
接下来看看实际写代码时表现怎么样
如果我想生成一个数组用于测试,那会很方便
遍历也能联想出来
字符串数组也一样
不仅是数组,元组也是可以的
能根据类名猜成员变量并自动帮你写内置方法
接下来我想写一个Student
类
构建器和成员变量看起来不错,假如我还需要一个__str__
方法
接下来需要测试一下这个类,测试数据的生成非常智能,连自己写的类都可以
再写一个类,这个类需要实现传入 Python 脚本文件路径,读取并保存内容和文件名。Copilot 一开始没有猜中我想干啥,但是我们继续。
设置构建器参数后,它猜的准了一些,但还没完全猜中
当我输入到一半的时候,它完全猜中了我想干啥并正确地补全代码,甚至还在下一行为我推荐保存文件路径(图片没有展示)。
接下来它知道了我想要读取文件内容,并正确地进行了补全
另一个用于打印的内置方法也能自动推荐,我只需要按照我的需求稍加改动即可
测试数据生成也一如既往的给力
写一个脚本的时候发现很多常用的语句都能自动补全,比如写入文件时需要判断路径是否存在,而我在写到一半的时候 Copilot 就完整地联想了整个代码段
Copilot 应该能够一定程度上提高写代码的效率,它的智能化超出了我的预期,之前还以为只能用来自动写一些常用的方法。在体验过程中我还发现它会学习用户写的代码(风格),变得越来越好用。当然 Copilot 不能帮你自动写代码,从需求直接生成代码还是不可能的(饭碗还在)。
1
ZRS 2021-07-26 01:16:29 +08:00
应该会是个不错的补全工具
|
2
hronro 2021-07-26 02:04:35 +08:00 via iPhone 1
补全的代码全部都没有遵循原 License,迟早要丸
|
3
IgniteWhite 2021-07-26 02:11:41 +08:00 2
楼主的帖子做的真好!
|
4
0ZXYDDu796nVCFxq 2021-07-26 02:22:10 +08:00
试下 red_black_tree,看能不能自动补个红黑数的实现,哈哈哈
|
5
zooo 2021-07-26 02:45:18 +08:00
我的申请为啥还没通过,好想试试
|
6
dangyuluo 2021-07-26 06:23:53 +08:00
赞,还在 waitlist 里等着呢。
|
7
codehz 2021-07-26 07:10:26 +08:00 via Android
(这玩意配合 TypeScript 还能根据类型补全 WebGL 的 Uniform 方法名字呢,根本不需要什么 WebGL 框架也能玩的很舒服)
还有可以在 ts 文件里补全嵌入在 literal 字符串里的 glsl 代码,甚至自动随后生成读取 uniform 位置的调用。。。 (虽然对于严肃项目来说可能用处不大,但是对于快速做出 PoC 来说意义重大,基本省去了专门寻找一个包装库的时间 |
8
rashawn 2021-07-26 08:45:01 +08:00 via iPhone
|
9
Sin 2021-07-26 08:48:25 +08:00 2
思想不受著作权法保护,解释成根据原代码的思路重写的自己的代码好像也没问题
事实上人好像也是这么写代码的,具体案例具体分析了 这玩意搞不好会影响开源运动的方向... |
10
lqzhgood 2021-07-26 09:04:58 +08:00
vscode js 安装后不能补全括号了。 就是输 `{` 不会自动补全 `}` 并挪动光标到中间
|
12
abersheeran 2021-07-26 10:00:02 +08:00
|
13
ayase252 2021-07-26 10:39:53 +08:00
确实不错,好像还能联想上下文
有很多时候它补全的代码就是我想写的代码 |
14
xJogger 2021-07-26 10:50:41 +08:00 via Android
跟特斯拉一样,特斯拉用电车主的实际驾驶来训练自己的自动驾驶。
Github 可以用这玩意让百万程序员给自己训练自动编程机器。 |
15
sky96111 2021-07-26 13:34:48 +08:00 via Android
@hronro 很难界定。看了代码以后学习到的思路不受到版权保护限制,但把开源样本投喂给 AI……
|
16
zwithz1998 2021-07-26 14:10:04 +08:00 1
经测试,它会联想和 GitHub 上开源 repo 上完全一致的代码。。某一天照着一个 repo 的某个函数写的时候发现的
|
17
TinyKube 2021-07-26 15:36:09 +08:00
|
19
reiji 2021-07-26 19:47:36 +08:00 via Android
确实很喜感,我写 leetcode 的时候老是被剧透
|
20
liflymark6 2021-07-26 22:09:06 +08:00
大手子啥时候申请的啊,我这申请好多天了还没有通知呢
|
21
maoxs2 2021-07-27 01:23:22 +08:00 via Android
最绝的是写博客还能给你用中文联想整句话。。。
|
23
lamysafari 2021-11-02 11:20:17 +08:00
@TinyKube 同步一下是啥意思?咋同步?
|