GitHub Copilot的使用方法以及在引入前需要了解的事项
Back to Top
|
3 min read
Author:
kenta-ishihara

Information
为了覆盖更广泛的受众,这篇文章已从日语翻译而来。
您可以在这里找到原始版本。
这是is开发者网站Advent Calendar 2024第17天的文章。
开始之前
#当我想振作的时候,就会去吃汉堡王的Big Bet。最近,我在项目中开始使用GitHub Copilot(以下简称Copilot),所以将使用方法和引入前需要知道的一些事项整理了一下。如果本文能为正在考虑引入Copilot的人,或者已经在使用Copilot的人提供帮助,我将深感荣幸。(本文基于Windows + IntelliJ环境编写,敬请谅解。)
引入方法
#- 使用GitHub账号订阅以下Copilot计划。(参考:GitHub Copilot 的订阅计划)
- GitHub Copilot Individual(个人版)
- GitHub Copilot Business(适用于中小团队或企业)
- GitHub Copilot Enterprise(适用于大型团队或企业)
- 安装Copilot插件。
- 从IntelliJ中使用快捷键「Ctrl + Alt + S」打开设置对话框。
- 在「插件」中搜索「GitHub Copilot」并安装。
- 将IntelliJ与GitHub账号进行关联。(参考:使用JetBrains IDE安装GitHub Copilot)
使用成本
#※截至2024年12月的价格,仅供参考。具体价格请参阅官方文档。
- 如果使用GitHub Copilot Individual(个人版),费用为10美元/月或100美元/年。
- 如果使用GitHub Copilot Business(适用于中小团队或企业),费用为19美元/月。
- 如果使用GitHub Copilot Enterprise(适用于大型团队或企业),费用为39美元/月。
基本使用方法
#基本的使用方法大致分为以下两种:
输入补全功能
#- 类似于IDE的输入补全功能,Copilot可以在编码过程中为后续实现提供建议。接受建议请按「Tab」键,不接受请按「Esc」键。
- 当有多个建议时,可以通过「Alt + ]」(显示下一个建议)或「Alt + [」(显示上一个建议)进行选择。
- 自动补全的建议可以包含单步或多步提案。如果希望部分接受某些建议,可参考以下操作:
- 按「Ctrl + →」接受按单词单位的建议。
- 按「Ctrl + Alt + →」接受按单步单位的建议。
- 如果在注释中具体描述实现内容,Copilot会提供更精确的建议。
AI聊天功能
#- 点击IntelliJ中的「Copilot Chat」图标,输入提示语(Prompt)。
- 在发送提示时,可以选择参考文件。
- 除了明确指定的文件外,Copilot还会参考当前在IntelliJ中打开的文件。如果问题与当前打开的文件相关,则无需额外指定。
- 如果想要指定文件的某一部分,只需选定相应内容,然后再进行提问,Copilot会参考选定的部分。
关于与ChatGPT的区别
#基本上,即使使用ChatGPT,也大致能够满足对Copilot的需求。然而,在输入包含前提条件的提示语,以及实时地提供候选建议的效率方面,Copilot的使用体验更佳。
使用场景
#- 编码支持
- 辅助进行对偶编程(Pair Programming)和多人编程(Mob Programming)的导航工作。
- 代码解释
- 对可读性较低的代码,可以通过输入「/explain」让Copilot解释代码的处理内容。
- 协助重构
- 使用「/fix」获取修改建议,并在实现后确认是否还有改善空间,这可能会非常有用。
- 编写测试代码
- 在打开目标文件的状态下,在Copilot Chat中输入「/test」并发送,Copilot会提供测试代码的建议。
- 用于掌握不熟悉的语言或库
- 在学习或实现尚不熟悉的编程语言或库时,Copilot提供的代码示例可以作为很好的参考。(不过建议的代码是否能完全正确运行则需另行确认。)
- 探索错误原因及解决方法
- 在不了解错误原因时,可以尝试询问Copilot作参考。(仅供参考)
用户的评价
#- 省去了思考提示词和输入的麻烦,比ChatGPT使用起来更轻松。
- 有时会提供一些脱离实际的建议。(是不是因为对应代码中留有不必要的注释或不准确的注释?)
- 当任务内容较为简单但实现量较大时,使用Copilot可以极大地提高工作效率。
- 在编写需求文档时,根据现有类提取相关条目时得到了帮助。
- 在实现遇到困难时,能够作为值得信赖的“咨询对象”使用。
AI发展后的未来开发场景可能出现的事情
#- 新人:「这是AI生成的代码,我不知道为什么会有Bug。」上司:「这不就是你写的代码吗!」
- 要为自己写的代码负责,毕竟AI不会为代码负责。
- 上司:「找AI帮忙更轻松。」从而产生AI职场霸凌。
- 即使心里这么想,也不要说出口。
- 过于依赖AI不好,但在支持工作的环境下,使用Copilot可能会让不熟练的新人更高效地完成任务。
结束语
#随着在编码过程中使用ChatGPT或Copilot来查询问题逐渐成为常态,我不禁在想,「百度一下」或者「ggrks」这些词是不是已经快变成过去式了。(不敢问)无论是AI还是Google大神,始终不变的是使用者需要自己思考,并对自己编写的代码负责,不论时代如何变化。