作者:@GitHub Copilot Team
原文:https://docs.github.com/zh/copilot/quickstart
好消息!
从现在开始,大家可以在 Visual Studio Code 中,免费使用强大的 GitHub Copilot 进行开发啦!
这个免费方案提供对 Copilot 选定功能的有限存取权限,无需订阅即可体验 AI 驱动的编码协助。免费方案每月提供 12,000 个 IDE 代码完成和 250 条 IDE Copilot Chat 消息。
同时借此这个机会,重新了解这个 GitHub Copilot,以及操作指南跟最佳实践
一、GitHub Copilot 是什么?
GitHub Copilot 是一款由 AI 驱动的代码辅助工具,它能帮助开发者更快、更轻松地编写代码,让开发者能将更多精力集中在解决问题和协作上。GitHub Copilot 已被证实可以提高开发者的生产力并加速软件开发的速度。
二、GitHub Copilot 的优势和劣势
1、GitHub Copilot 最擅长
编写测试和重复性代码
Copilot 非常擅长生成测试用例和处理重复性的编码任务,例如循环和条件语句。
除错和修正语法错误
Copilot 可以帮助你快速识别和修复代码中的语法错误,并提供更正建议。
解释和评论代码
Copilot 可以解释代码的功能和逻辑,并帮助你添加清晰易懂的代码注释。
生成正则表达式
Copilot 可以根据你的描述生成复杂的正则表达式,并帮助你理解其含义。
提供代码完成建议
Copilot 可以根据你输入的代码和上下文,自动完成程式码片段、变数名称和函数。
2、GitHub Copilot 不擅长
处理与编码和技术无关的提示
Copilot 主要用于编码任务,它无法理解或回应与编码无关的请求。
取代你的专业知识和技能
Copilot 是一个辅助工具,它不能取代你的编码技能和经验。你仍然需要理解和评估 Copilot 生成的代码,并做出最终的决策。
生成完全准确和安全的代码
Copilot 仍然是一个 AI 工具,它生成的代码可能存在错误、安全漏洞或其他问题。你需要仔细检查和测试 Copilot 生成的代码,才能确保其准确性和安全性。
处理模糊或不具体的提示
Copilot 的生成质量取决于你提供的提示。如果你提供的提示不够清晰或具体,Copilot 可能无法理解你的意图,从而生成无用或不相关的代码。
三、选择合适的 Copilot 工具
在选择使用 GitHub Copilot 的代码完成功能还是 Copilot Chat 功能时,需要根据具体的使用场景来决定。虽然这两个工具的功能有所重叠,但它们更适合于不同的情况。
1、代码完成功能最适合以下场景
在你编写代码时,完成代码片段、变数名称和函数。
生成重复性代码。
从自然语言的内联注释生成代码。
为测试驱动开发生成测试。
2、Copilot Chat 则更适合以下场景
用自然语言回答有关代码的问题。
生成大量的代码,然后根据你的需求迭代修改代码。
使用关键字和技能完成特定的任务。Copilot Chat 具有内置的关键字和技能,旨在为提示提供重要的上下文,并快速完成常见任务。不同的 Copilot Chat 平台提供不同类型的关键字和技能。
以特定角色完成任务。例如,你可以告诉 Copilot Chat 它是一个非常关注代码品质、可读性和效率的资深 C++ 开发人员,然后要求它审查你的代码。
四、编写有效的提示语
GitHub Copilot 可以理解并响应你的请求,提示工程在其中扮演着至关重要的角色。提示工程指的是构建你的请求,以便 Copilot 可以轻松理解并做出有价值的回应。
以下是一些关于如何撰写有效提示的技巧以及相关示例:
分解复杂任务。
与其给 Copilot 一个庞大而复杂的任务,不如将其分解成更小、更易于管理的步骤。
例如,与其要求 Copilot “创建一个网站”,不如将其分解为诸如 “创建 HTML 结构”、“添加 CSS 样式” 和 “使用 JavaScript 实现交互性” 等步骤。
具体说明你的要求。
清楚地说明你希望 Copilot 做什么,包括你期望的输出类型、编程语言以及任何特定的库或框架。
例如,不要只说 “编写一个排序算法”,而要说 “使用 Python 编写一个冒泡排序算法”。
提供示例,例如输入数据、输出和实现。
示例可以帮助 Copilot 更好地理解你的期望,并生成更准确的结果。
例如,如果你希望 Copilot 生成一个函数来计算两个数字的总和,你可以提供一个示例输入 (2, 3) 和一个预期输出 (5)。
遵循良好的编码实践。
使用清晰且一致的代码风格,并提供有意义的变量和函数名称。
例如,不要使用像 “x” 或 “y” 这样的通用变量名,而要使用描述性的名称,例如 “userName” 或 “productPrice”。
通过遵循这些技巧,你可以撰写有效的提示,帮助 Copilot 生成更准确、更有用的代码建议。
五、检查 Copilot 生成代码的准确性和安全性
在接受代码建议前,你必须仔细检查 Copilot 生成代码的准确性和安全性。
以下是一些检查 Copilot 工作的技巧:
在实现建议的代码之前,先理解它。
为确保你完全理解 Copilot 的建议,可以要求 Copilot Chat 解释代码。这与我们之前讨论过的 “分解复杂任务” 类似,可以帮助你更好地理解代码的逻辑和功能。
仔细审查 Copilot 的建议。
不仅要考虑建议代码的功能和安全性,还要考虑代码未来的可读性和可维护性。这就像我们之前提到的 “遵循良好的编码实践”,良好的代码风格和命名规范可以提高代码的可读性和可维护性。
使用自动化测试和工具来检查 Copilot 的工作。
借助 linting、代码扫描和 IP 扫描等工具,可以自动执行额外的安全性和准确性检查。
此外,你还可以选择检查 Copilot 的工作是否与现有的公共代码相似。如果你不想使用类似的代码,可以关闭匹配公共代码的建议。
以下是一些关于如何检查 Copilot 工作的示例,以及如何应用之前讨论过的技巧:
理解建议的代码
假设 Copilot 建议了一段复杂的排序算法代码。不要盲目地接受它,而是要求 Copilot Chat 解释这段代码的逻辑,例如它是如何实现排序的,时间复杂度是多少,以及是否有任何潜在的边缘情况需要考虑。
如果你对某一部分的代码不理解,可以 针对特定的代码片段提问,例如 “这段代码中 while 循环的作用是什么?” 或者 “这个变量 temp 的作用是什么?” 通过这种方式,你可以逐步理解 Copilot 生成的代码,并确保它符合你的预期。
审查 Copilot 的建议
Copilot 可能建议使用一个你不太熟悉的库或框架。在这种情况下,你应该 审查该库或框架的文档,了解其功能、优缺点,以及是否适合你的项目。
Copilot 生成的代码可能存在潜在的性能问题,例如使用了效率较低的算法或数据结构。你可以使用 代码分析工具 来检查代码的性能,并进行必要的优化。
Copilot 生成的代码可能不符合你的代码风格规范。你可以使用 代码格式化工具来自动调整代码格式,使其与你的团队的标准一致。
使用自动化测试和工具
你可以编写 单元测试 来验证 Copilot 生成的代码是否按预期工作。单元测试可以帮助你发现代码中的错误,并确保代码的质量。
你可以使用 linting 工具 来检查代码的语法错误、代码风格问题,以及潜在的安全漏洞。Linting 工具可以帮助你提高代码的可读性和可维护性。
你可以使用 代码扫描工具 来扫描代码,查找已知的安全漏洞。代码扫描工具可以帮助你提高代码的安全性。
六、引导 Copilot 生成有帮助的输出
要想引导 Copilot 生成更有帮助的输出,关键在于提供有用的上下文和优化你的提示。
1、提供有用的上下文
使用 IDE 时
打开与任务相关的文件,并关闭不相关的文件,以便 Copilot 能够更好地理解当前的代码环境。
使用 Copilot Chat 时
如果某个特定的请求不再提供有用的上下文,请将其从对话中删除。如果整个对话的上下文都不再有用,请开始新的对话。
使用 Copilot Chat in GitHub 时
提供具体的代码库、文件、符号等作为上下文信息,帮助 Copilot 更准确地理解你的需求。
使用 Copilot Chat in IDE 时
使用关键词来引导 Copilot 专注于特定的任务或上下文。
2、优化你的提示
重写提示以生成不同的响应
如果 Copilot 生成的代码不符合预期,尝试重新措辞你的提示,或者将你的请求分解成多个更小的提示。
选择最佳建议
使用代码完成功能时,Copilot 可能会提供多个建议。你可以使用快捷键快速浏览所有可用的建议,并选择最合适的代码。
此外,还可以通过以下方式帮助 Copilot 学习并改进未来的建议:
3、提供反馈
对于代码完成,接受或拒绝 Copilot 的建议。
对于 Copilot Chat 中的单个回复,点击回复旁边的点赞或点踩图标。
对于 Copilot Chat in IDE,根据你的 IDE 环境查阅具体的操作指南。
对于 Copilot Chat in GitHub,在反馈讨论区留言。
总之,通过提供清晰的上下文、优化提示并及时提供反馈,你可以引导 Copilot 生成更有帮助的输出,从而提高你的编码效率和代码质量。
七、GitHub Copilot 的功能
1、代码完成
在受支持的 IDE(Visual Studio Code、Visual Studio、JetBrains IDE、Azure Data Studio、Xcode 和 Vim/Neovim)中,Copilot 会提供自动完成样式的建议。
2、Copilot 聊天
一个聊天界面,让你提出与编码相关的问题。GitHub Copilot 聊天功能可在 GitHub 网站、GitHub Mobile、受支持的 IDE(Visual Studio Code、Visual Studio 和 JetBrains IDE)以及 Windows Terminal 中使用。用户还可以使用 Copilot 聊天功能中的技能。
3、CLI 中的 Copilot
终端中的一个类似聊天的界面,你可以在其中提出有关命令行的问题。你可以让 Copilot 提供命令建议或解释命令。用户还可以将 Copilot 集成到 Windows Terminal Canary 中。
4、Copilot 拉取请求摘要
AI 生成的拉取请求中所做更改的摘要,它们影响哪些文件,以及审阅者在进行审阅时应该关注哪些内容。
5、Copilot 工作区(公开预览)
一个支持 Copilot 的环境,用于完善你的拉取请求、验证更改以及整合来自审阅者的建议。
6、Copilot 文本完成(公开预览)
AI 生成的文本完成,帮助你快速准确地编写拉取请求描述。
7、GitHub Copilot 扩展程序(公开预览)
将外部工具的功能集成到 GitHub Copilot 聊天中的 GitHub 应用程序。Copilot 扩展程序可以由任何人开发,供私人或公共使用,并且可以通过 GitHub Marketplace 与他人共享。
8、GitHub 模型(公开预览)
将行业领先的大型和小型语言模型的功能直接带给 GitHub 上的用户。
9、GitHub Copilot 代码审阅(公开预览)
AI 生成的代码审阅建议,帮助你编写更好的代码。
10、Copilot 知识库 (仅限 Copilot 企业版)
创建和管理文档集合,作为与 Copilot 聊天的上下文。当你在 GitHub 或 VS Code 中的 Copilot 聊天中提出问题时,你可以指定一个知识库作为问题的上下文。
尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...
时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...
如题 ...
读者评论