VS Code一秒生成80%代码?鹅厂人真实感受

a2a7420c8b129fcd0efc5bedbc9c3590.gif# 关注并星标腾讯云开发者

# 每周4 | 鹅厂一线程序员,为你“试毒”新技术

# 第3期 | 腾讯孟健:测评 VSCode Copilot Chat 新特性体验

d63e0446c9ee733799d6d67ad086ecd8.png

GitHub Copilot 发布不过两年,已助力逾百万开发者创造超过46%的代码量,更将编码速度提升了高达55%。

而近期,VScode发布1.80版本,这次重磅更新直接引入GitHub Copilot新功能—— Copilot ChatAI聊天助手来袭!

是鸡肋还是生产力?

在答案揭晓之前,如果你想体验最新版本、下载 VSCode 插件,可访问:https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat

安装之后,会发现侧边栏多了一个聊天的入口,在关联到 Github 账号就可以使用了(账号需要 waitlist 通过):

1de5872802bef8cad530c063a51502b5.jpeg

282b7e7ff86317f3307616b713811f84.gif

2eb43e5c7a2025d31eb27effa6752b6b.png

Copilot Chat 主要提供了一个可交互式的界面。

在帮助文档中我们可以看到,它支持以下几种能力:

▶︎ 解释一行代码、整个文件或库 API 的作用。

▶︎ 找出问题,甚至修复它们。

▶︎ 重写代码以使其更易读或更快。

▶︎ 编写新的测试和组件。

▶︎ 提问关于 VS Code 的问题。

▶︎ 提问一般编程问题。

▶︎ ……

当然还有以 / 开头的命令:

▶︎ /tests - 为选择的代码生成单元测试

▶︎ /fix - 为选择的代码问题提供修复建议

▶︎ /explain - 解释选择的代码的工作原理

▶︎ /ext - 关于 VS Code 扩展程序开发的问题

▶︎ /vscode - 关于 VS Code 的问题

▶︎ /help - 关于 GitHub Copilot 的一般帮助

▶︎ /createWorkspace - 创建一个项目

29fc4d65b7d05a8296acbbf307879106.png

4f8737962f4c0851d3a2b166dd333e09.jpeg


如同 GPT 一样,我们可以针对代码中不太理解的地方直接进行提问,选中文本后,输入 /explain 指令加上想问的内容就好。(这里默认返回英文,如果用中文提问也可以得到中文的回答)。

在这里我们选择了一个非常复杂的正则来进行测试,可以看到模型理解还是很不错的,能够解释的非常细致,针对场景我们还可以追问,让 AI 来充当你的老师。

8ff5e3e6ece5034a49f99516e7e25604.png

23a150d59cf9446012db7468cd6c641a.jpeg


在本次测试中,我故意改错了一个变量(不过保证语法是正常的,只是逻辑错误),Copilot 能够直接发现这个改动的问题,并给出了修复后的代码。请各位看图。

对于这种独立小函数,Copilot 的纠错能力还是不错的。

003efbe2709ce42b46f858f0d5ddb2ee.png

55f42dcba6d87ebf2a4f8809e3d61b18.jpeg

可以让 Copilot 帮忙为函数生成测试用例,然后跑一下验证用例的准确性。

在这个 case 中,Copilot 总共帮忙生成了6个用例,其中5个通过,1个不通过。仔细看了下,这个用例的期望输出有一些问题,可见模型生成的用例的准确性还是有一些问题的。

不过从完备性来看,Copilot 生成的测试用例还是给了我们不少启发,在编写测试用例这一块有极大的借鉴和提效。

当然,我们还可以借助 Copilot 来进行完成代码重构、写一个新组件等任务。相信大家日常中也有可能用到的探索场景,都可以用 Copilot 来尝试,我们就不再赘述。

78c887517e97d48f8c34f50b3a82559e.png

1.8版本推出了一个有意思的小功能,支持了 /createWorkspace 命令,这个命令可以帮助我们快速创建一个新的项目:

61e2a96ccd656c5319babaf4aa6cf961.jpeg


不过当我真正跑起来的时候,发现还是有不少问题:

5ff92b970a53d0aa535547c9759cc8ed.jpeg


可以看到 Copilot 生成的项目所用的 vue-cli-service 已经过时了,并且少了一些 babel 和 webpack 的配置。这一部分应该还是受限于当前 AI 的训练语料时间,一般来说很容易与当前最新的资料脱轨,这个功能也许需要联网能力才可以更好地进行使用。

205f3f472740ca9fab71af840ce9b0d3.png

值得注意的是,这个插件还是有许多地方需改进。比如模型的边界——幻想问题。

e45edf30a589e6e4c8fc7f8ed20a61fa.jpeg


可以看到在问到一些比较困难的问题时,Copilot 会幻想出一些不存在的 API 来尝试解答。这样的情况在 GPT 中也会有发生,这也是目前大模型的一个局限,会进行一些不基于事实的捏造与幻想。我们在使用 AI 的过程中,需要仔细辨别它的正确性。

虽有局限性,但是总的来说我个人认为 Copilot Chat 还是一款非常有用的工具,我们已经能够看到 ta 在很多场景为我们提供协助,比如我个人常用的两个场景:

▶︎ 代码理解:经常寻求 AI 帮助理解复杂的代码逻辑,尤其是在读源码时非常有帮助。

▶︎ 代码补全:写代码时提效帮助很大,也可以在编写代码时与 Copilot 进行结对编程,提升自己的代码质量。

相信随着模型的不断更新和完善,Copilot Chat 会越来越好用,期待拥抱未来编程新时代。

如果真的“动动嘴”就完成开发,你最想做一个什么样的项目呢?欢迎留言。我们将挑选一则最具创意的回答,为其留言者送出腾讯定制程序员文化衫。8月14日中午12点开奖。

5fe9888112bbe41c88472f739a19d622.png

6bc66c7f9dfd6ce4b7b3eb5184814cb1.png

40d7fdb34daf456b6d5f0f5f82641d76.png

02f029b5411e0991294f25e618173153.png

8cee295d6f8e52cd8033e339149b3101.png

64533e3cd25e5a166685e8975e1955f9.png

关注并星标腾讯云开发者

每周4看鹅厂程序员测评新技术

猜你喜欢

转载自blog.csdn.net/QcloudCommunity/article/details/132222388