首页   

【早阅】GitHub Copilot最佳实践

前端早读课  · 前端  · 昨天

主要观点总结

文章介绍了GitHub Copilot免费版的使用及其相关信息,包括它的优势与劣势、选择合适Copilot工具的方法、编写有效的提示语、检查Copilot生成代码的准确性和安全性,以及如何引导Copilot生成有帮助的输出等。此外,文章还介绍了GitHub Copilot的功能,如代码完成、Copilot聊天、CLI中的Copilot终端等。

关键观点总结

关键观点1: GitHub Copilot简介

GitHub Copilot是一款由AI驱动的代码辅助工具,可以帮助开发者更快、更轻松地编写代码。

关键观点2: GitHub Copilot的优势和劣势

Copilot擅长编写测试和重复性代码、提供代码完成建议等,但不擅长处理与编码和技术无关的提示、完全取代开发者专业知识和技能等。

关键观点3: 选择合适的Copilot工具

根据具体使用场景选择使用GitHub Copilot的代码完成功能还是Copilot Chat功能。

关键观点4: 编写有效的提示语

提供清晰、具体的提示,帮助Copilot更好地理解并做出有价值的回应。

关键观点5: 检查Copilot生成代码的准确性和安全性

在接受代码建议前,必须仔细检查Copilot生成代码的准确性和安全性,包括理解建议的代码、审查Copilot的建议、使用自动化测试和工具进行检查等。

关键观点6: 引导Copilot生成有帮助的输出

提供有用的上下文和优化提示,引导Copilot生成更有帮助的输出。

关键观点7: GitHub Copilot的功能

包括代码完成、Copilot聊天、CLI中的Copilot终端、Copilot拉取请求摘要、Copilot工作区、Copilot文本完成、GitHub Copilot扩展程序、GitHub模型、GitHub Copilot代码审阅和Copilot知识库等。


正文

作者:@GitHub Copilot Team
原文:https://docs.github.com/zh/copilot/quickstart

好消息!

从现在开始,大家可以在 Visual Studio Code 中,免费使用强大的 GitHub Copilot 进行开发啦!

这个免费方案提供对 Copilot 选定功能的有限存取权限,无需订阅即可体验 AI 驱动的编码协助。免费方案每月提供 12,000 个 IDE 代码完成和 250 条 IDE Copilot Chat 消息。

【第3434期】VSCode 推出 GitHub Copilot 免费版

同时借此这个机会,重新了解这个 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 聊天中提出问题时,你可以指定一个知识库作为问题的上下文。

😀 每天只需花五分钟即可阅读到的技术资讯,加入【早阅】共学,可联系 vx:zhgb_f2er

5 分钟新知:了解技术资讯的一种方式。

🚀可直接通过阅读原文了解详细内容。

© 2024 精读
删除内容请联系邮箱 2879853325@qq.com