1. 什么是copilot?
GitHub Copilot 是由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具,俗称:副驾驶,通过插件的方式安装到编辑器(vs code)后,可以帮我们自动补全代码、根据注释生成代码、解释代码、生成测试代码、生成注释等等。
技术背景
在当今快速发展的软件开发领域,效率和创新是推动技术进步的双引擎。GitHub Copilot,作为 GitHub 和 OpenAI 联手打造的人工智能编程助手,正是为了应对这一挑战而诞生。它利用了 OpenAI 的先进自然语言处理技术,特别从一开始就基于 GPT-3 模型的 Codex,通过分析大量的开源代码库,学习编程模式和代码结构,从而为开发者提供智能的代码补全和生成建议。
GitHub Copilot 的开发背景可以追溯到人工智能在自然语言处理(NLP)领域的突破。OpenAI 的 GPT-3 模型在理解和生成自然语言方面取得了革命性进展,这为将 AI 应用于编程领域提供了可能。GitHub,作为全球最大的代码托管平台,拥有丰富的开源代码资源,这为训练 AI 理解编程语言和代码逻辑提供了宝贵的数据。结合两者的优势,GitHub Copilot 成为了现实。(毕竟微软可是 OpenAI 的亲爸,投了那么多钱,肯定想成为第一个吃螃蟹的人...)
2. 为什么有了GPT还需要copilot?
我们已经可以直接向GPT提问,为啥还需要copilot;
- copilot内嵌到vs code编辑器中,无需离开我们的代码编写环境就能提问、处理、生成代码(省去把问题或者GPT的回答来回粘贴的繁琐)
- copilot生成的代码更贴近项目(它是基于项目当前代码上下文生成的),因此能生成基于当前项目代码风格的代码,可移植性更高。
功能特点
-
代码补全:GitHub Copilot 能够根据当前的代码上下文,自动补全代码,包括函数、变量、类等的声明和实现。
-
根据注释生成代码:开发者可以在注释中描述他们想要实现的功能,GitHub Copilot 会根据这些描述生成相应的代码。
-
方法和函数生成:当开发者输入一个方法名或函数名时,GitHub Copilot 可以自动生成该方法或函数的代码实现。
-
生成测试代码:开发者可以请求 Copilot 生成测试代码,以确保新编写的代码的正确性和稳定性。
-
文档字符串生成:Copilot 能够根据函数的名称和参数,自动生成文档字符串,帮助开发者维护代码文档。
-
代码审查:虽然这不是 Copilot 的直接功能,但它生成的代码通常遵循良好的编程实践,可以作为代码审查的参考。
-
提高开发效率:通过智能补全和代码生成,GitHub Copilot 可以帮助开发者快速完成编码任务,减少编写重复代码的时间,让开发者能够专注于解决更复杂的问题。
-
促进学习和创新:对于新手开发者,GitHub Copilot 提供的代码示例可以帮助他们更快地学习和理解编程概念。对于经验丰富的开发者,它能够激发新的编程思路,促进创新。
-
代码质量提升:GitHub Copilot 能够根据上下文提供最佳实践和模式,帮助开发者编写更优雅、更健壮的代码。
-
跨语言支持:GitHub Copilot 支持多种编程语言,使得开发者在多语言项目中能够更加灵活地切换和协作。
-
持续学习:GitHub Copilot 会根据开发者的反馈和社区的代码更新不断学习和改进,以提供更准确的代码建议。
3. 使用技巧
如何使用copilot,使用有两大区域块:
- chat区域,直接在聊天框中输入你的问题(PS: 你可以选中你的代码行,这样问问题的时候,它会根据你的代码行生成更可靠的答案)
- 编辑器文件中(比如:自动提示、注释生成代码等等) 我们的所有使用场景,其实都是在上面两大区域完成的。理论上而言,chat区域可以完成所有功能,只是编辑器文件中,更友好点而言:
3.1 自动建议(Tab)
这种最简单,你在写代码的时候它自动的给你提示,提示的内容是灰色的,您可以按下Tab键接受建议,
通过Esc键丢弃提示。
如果对自动建议不满意,可以切换:
alt(option) + ]下一条建议alt(option) + [上一条建议
3.2 注释生成代码
这是最强大、也是最使用的功能之一。
您可以先写一段注释,写的越详细,它生成的代码就越满足您的要求。
方式1:
一般而言你写完注释后,它在下一行它会有自动提示,如果没有自动提示。你可以通过alt(option) + 来触发自动提示。
方式2:
另外一种更好的方式是,此时按下ctrl + enter输出十种代码实现,哪种好,接受那种就行。
这种方式非常推荐!!!
3.3 解释代码
这对于你看代码来说,真的太方便了,不熟悉的语法知识点啥的随便问。
有几种方式:
方式1
选中要解释的代码,在chat聊天框中输入/explain 如果要按照中文解释,多写一些字比如:/explain 用中文解释
方式2
选中要解释代码,右键copilot > explain this
PS: 比较快捷,但是默认输出方式是英文
3.4 生成测试
前面的解释代码的方式一、方式二,换成/tests generate tests即可
3.5 行内操作
所有的解释、生成代码、测试、fix等都可以在行内操作进行。
所谓行内,就是在不离开编辑器文件代码的的情况下操作,这个时候只需要按comand + I这个时候会当前光标所在的行展示一个输入框,在输入框可以提问,也可以输入/explain``/tests等等。
3.6 q/a对话
在任意代码文件中输入注释符号,然后输入q: 后跟一个问题,比如// q: xx问题,
在下一行中输入// a:copilot会提供最简短的回答内容。
3.8 快捷键总结
alt(option) +手动触发提示alt(option) + ]下一条建议alt(option) + [上一条建议ctrl + enter十种代码实现comand + I行内操作