在 IDE 中使用 GitHub Copilot:提示、技巧和最佳实践

如今,人工智能已成为我工作流程中不可或缺的一部分,在 GitHub Copilot 的帮助下,我在构建项目时的速度加快了很多。 在过去的一年里,我使用人工智能工具来提高我的工作效率,我意识到,与学习如何使用新框架或库类似,我们可以通过学习如何最好地使用人工智能工具来提高我们的效率。

在这篇博文中,我将分享我为充分利用 GitHub Copilot 所做的一些日常工作。 我希望这些技巧能够帮助您成为人工智能助手更高效、更有生产力的用户。

需要复习一下如何使用 GitHub Copilot?由于 GitHub Copilot 在 IDE、CLI 和整个 GitHub.com 中不断发展,我们整理了一份有关使用 GitHub Copilot 的完整指南,其中包含提示提示和技巧。 获取指南 >

想要了解如何在 IDE 中最好地利用它? 继续阅读。 ⤵

超越代码完成

要充分利用 GitHub Copilot 的强大功能,了解其功能非常重要。 GitHub Copilot 正在快速发展,并且不断添加新功能。 它不再只是编辑器中的代码完成工具,它现在包括一个可以在 IDE 中使用的聊天界面,一个通过 GitHub CLI 扩展、拉取请求中的摘要工具、终端中的帮助工具等等。

在最近的一篇博文中,我列出了一些您不知道的使用 GitHub Copilot 的方法。 这将使您对人工智能助手当前可以做的事情有一个很好的概述。

但除了与 GitHub Copilot 交互之外,您如何帮助它为您提供更好的答案? 嗯,这个问题的答案需要更多背景信息。

上下文,上下文,上下文

如果您了解大型语言模型 (LLM),您就会知道它们旨在根据提供的上下文进行预测。 这意味着,我们的输入或提示的上下文越丰富,预测或输出就越好。

因此,在与 GitHub Copilot 交互时,尤其是使用代码完成功能时,学习提供尽可能多的上下文是关键。 与 ChatGPT 不同,您需要在提示窗口中向模型提供所有数据,通过在编辑器中安装 GitHub Copilot,助手能够从您正在处理的代码中推断上下文。 然后,它使用该上下文来提供代码建议。

我们已经知道这一点,但是我们还能做些什么来为其提供更多背景信息呢?

我想与您分享一些基本技巧,以便在编辑器中为 GitHub Copilot 提供更多上下文,从而从中获取最相关和最有用的代码:

1.打开您的相关文件

打开文件可以为 GitHub Copilot 提供上下文。 当您打开其他文件时,通知返回的建议将有所帮助。 请记住,如果文件已关闭,GitHub Copilot 将无法在编辑器中看到该文件的内容,这意味着它无法从这些已关闭的文件中获取上下文。

GitHub Copilot 查看编辑器中当前打开的文件以分析上下文,创建发送到服务器的提示,并返回适当的建议。

在编辑器中打开一些文件,以便 GitHub Copilot 对您的项目有更全面的了解。 您还可以使用 #editor 在聊天界面中为 GitHub Copilot 提供有关当前在 Visual Studio Code (VS Code) 和 Visual Studio 中打开的文件的附加上下文。

请记住在上下文切换或继续下一个任务时关闭不需要的文件。

正如您向同事进行简短、高级的介绍一样,您正在处理的文件中的顶级注释可以帮助 GitHub Copilot 了解您将要创建的片段的整体上下文,特别是如果您希望人工智能助手生成样板代码供您开始使用。

请务必包含有关您需要的详细信息并提供良好的描述,以便包含尽可能多的信息。 这将有助于指导 GitHub Copilot 提供更好的建议,并为其设定工作目标。 提供示例,特别是在处理数据或操作字符串时,会有很大帮助。

3. 设置包含和参考

最好手动设置工作所需的包含/导入或模块引用,特别是在使用特定版本的包时。

GitHub Copilot 会提出建议,但您知道要使用哪些依赖项。 这还有助于让 GitHub Copilot 了解您希望在制定建议时使用哪些框架、库及其版本。

当 GitHub Copilot 默认提供较旧的代码建议时,这有助于将 GitHub Copilot 跳转到较新的库版本。

4.有意义的名字很重要

变量和函数的名称很重要。 如果你有一个名为 foo 或者 bar,GitHub Copilot 将无法为您提供最佳补全,因为它无法从名称推断意图。

正如函数名一样 fetchData() 对同事(或几个月后的你)来说没有多大意义, fetchData() 对于 GitHub Copilot 来说也没有多大意义。

实施良好的编码实践将帮助您从 GitHub Copilot 获得最大价值。 虽然 GitHub Copilot 可以帮助您更快地编码和迭代,但请记住旧的编程规则仍然适用:垃圾输入,垃圾输出。

函数名为

5. 提供具体且范围明确的功能注释

对代码进行注释可以帮助您获得非常具体、有针对性的建议。

函数名称只能具有描述性,但不能太长,因此函数注释可以帮助填写 GitHub Copilot 可能需要了解的详细信息。 GitHub Copilot 的一项巧妙功能是,它可以确定您的编程语言中通常用于函数/方法注释的正确注释语法,并根据代码的用途帮助您创建它们。 作为您所做的第一个更改,向这些内容添加更多详细信息可以帮助 GitHub Copilot 确定您想要在代码中执行的操作以及如何与该函数交互。

请记住:单个、具体、简短的注释有助于 GitHub Copilot 提供更好的上下文。

6.提供示例代码

向 GitHub Copilot 提供示例代码将帮助其确定您要查找的内容。 这有助于为模型奠定基础并为其提供更多背景信息。

它还可以帮助 GitHub Copilot 生成与您想要实现的语言和任务相匹配的建议,并根据您当前的编码标准和实践返回建议。 单元测试在单个函数/方法级别提供一级示例代码,但您也可以在项目中提供代码示例,展示如何端到端地执行操作。 长期使用 GitHub Copilot 的一个很酷的事情是,它促使我们做很多我们应该一直做的良好编码实践。

通过观看此 YouTube 视频,了解有关向 GitHub Copilot 提供上下文的更多信息:

与 GitHub Copilot 内联聊天

内嵌聊天

除了提供足够的上下文之外,GitHub Copilot 还有一些您可能没有利用的内置功能。 例如,内联聊天让您有机会在代码行之间几乎与 GitHub Copilot 聊天。 通过按 CMD + I(Windows 上为 CTRL + I),您将有 Copilot 来提问。 这对于快速修复来说更方便,而不是打开 GitHub Copilot Chat 的侧面板。

这种体验为您提供了内联代码差异,这非常棒。 还有特殊的斜杠命令可用,例如仅使用按钮的斜杠即可创建文档!

VS Code 编辑器中的内联聊天,焦点为 /doc 命令

GitHub Copilot Chat 的提示和技巧

GitHub Copilot Chat 在编辑器中提供了一种体验,您可以在其中与 AI 助手进行对话。 您可以通过使用内置功能来充分利用它来改善这种体验。

8.删除不相关的请求

例如,您是否知道可以删除聊天界面中之前提出的问题,以将其从索引对话中删除? 尤其是当它不再相关时?

单击副驾驶聊天界面,将鼠标悬停在对话上,然后按 X 按钮将其删除。

这样做将改善对话流程,并仅向 GitHub Copilot 提供为您提供最佳输出所需的必要信息。

9. 浏览对话

我发现的另一个技巧是使用向上和向下箭头浏览与 GitHub Copilot Chat 的对话。 我发现自己滚动聊天界面,找到我问的最后一个问题,然后发现我可以像在终端中一样使用键盘箭头!

10. 使用 @workspace 代理人 @workspace 代理”/>

如果您使用 VS Code 或 Visual Studio,请记住代理可以帮助您走得更远。 这 @workspace 例如,代理了解您的整个工作空间并可以回答与其相关的问题。 因此,当尝试从 GitHub Copilot 获得良好的输出时,它可以提供更多上下文。

11.突出显示相关代码

使用 GitHub Copilot Chat 时的另一个重要技巧是在提问之前突出显示文件中的相关代码。 这将有助于提供有针对性的建议,并为助理提供更多有关您需要帮助的信息。

12.用话题组织你的对话

通过使用线程隔离对话,您可以就不同主题与 GitHub Copilot Chat 进行多个持续对话。 我们为您提供了一种通过单击聊天界面上的+号来开始新对话(线程)的便捷方法。

副驾驶聊天界面用鼠标点击加号按钮即可开始新线程或对话

13. 常见任务的斜杠命令

斜杠命令非常棒,而且数量相当多。 我们提供命令来帮助您解释代码、修复代码、创建新笔记本、编写测试等等。 它们只是常见提示的快捷方式,我们发现这些提示在我们自己的内部使用中对日常开发特别有帮助。

命令 描述 用法
/解释 获取代码说明 打开包含代码的文件或突出显示您想要解释的代码并键入:

/explain what is the fetchPrediction method?

/使固定 收到针对所选代码中的问题的建议修复方案 突出显示有问题的代码并键入:

/fix propose a fix for the problems in fetchAirports route

/测试 为选定的代码生成单元测试 打开包含代码的文件或突出显示要测试的代码并键入:

/tests

/帮助 获取有关使用 Copilot Chat 的帮助 类型:

/help what can you do?

/清除 清除当前对话 类型:

/clear

/文档 添加文档注释 突出显示代码并输入:

/doc

您还可以在编辑器中按 CMD+I 并输入 /doc/ 排队

/产生 生成代码来回答您的问题 类型:

/generate code that validates a phone number

/优化 分析并改进所选代码的运行时间 突出显示代码并输入:

/optimize fetchPrediction method

/清除 清除当前聊天记录 类型:

/clear

/新的 新工作区的脚手架代码 类型:

/new create a new django app

/简化 简化所选代码 突出显示代码并输入:

/simplify

/反馈 向团队提供反馈 类型:

/feedback

有关 VS Code 中可用的命令,请参阅下图:

  VS Code 终端中的斜杠命令。 显示的命令列于上表中

14.附上相关文件以供参考

在 Visual Studio 和 VS Code 中,您可以 使用 附加 GitHub Copilot Chat 的相关文件以供参考 #file。 这将 GitHub Copilot 限制在代码库中的特定上下文中,并为您提供更好的结果。

要引用文件,请键入 # 在评论框中选择 #file 您将看到一个弹出窗口,您可以在其中选择文件。 您还可以输入 #file_name.py 在评论框中。 请参阅下面的示例:

15. 从 GitHub Copilot Chat 开始以加快调试速度

这些天,每当我需要调试一些代码时,我都会首先转向 GitHub Copilot Chat。 最近,我正在实现一个决策树并执行 k 折交叉验证。 我不断得到不正确的准确度分数,但不明白为什么。 我向 GitHub Copilot Chat 寻求帮助,结果发现我没有使用我的训练数据集(X_train、y_train),尽管我认为我是:

我比使用外部资源更快地解决了这个问题。 我想鼓励您从编辑器中的 GitHub Copilot Chat 开始,以便更快地获得调试帮助,而不是首先访问外部资源。 按照我上面的例子,解释问题,粘贴有问题的代码,并寻求帮助。 您还可以在编辑器中突出显示有问题的代码并使用 /fix 聊天界面中的命令。

留意火花!

在 VS Code 中,您可以通过查找“”来快速从 GitHub Copilot 获得帮助魔法闪闪发光。例如,在提交评论部分,点击神奇的火花将帮助您在人工智能的帮助下生成提交消息。 当您正在寻找一种快速访问 GitHub Copilot 内联聊天的方法时,您还可以在编辑器中发现内嵌的魔法火花。

按下它们将使用 AI 来帮助您填写数据,并且正在添加更多神奇的火花,我们会在其他地方找到 GitHub Copilot 来帮助您的日常编码体验。

了解您的 AI 助手的闪光点

为了充分利用该工具,请记住上下文和提示的制作至关重要。 了解该工具最擅长的地方也很重要。 GitHub Copilot 非常擅长的一些功能包括样板代码和脚手架、编写单元测试、编写文档、模式匹配、解释不常见或令人困惑的语法、cron 作业和正则表达式,以及帮助您记住忘记的事情和调试。

但永远不要忘记,一切都在你的掌控之中,而 GitHub Copilot 就是你的副驾驶。 它是一个可以帮助您更快地编写代码的工具,并且由您决定如何最好地使用它。

它不是在这里为你做你的工作或为你写一切。 它将引导您并推动您朝正确的方向前进,就像您向同事询问问题或就特定问题寻求指导一样。

我希望这些提示和最佳实践有所帮助。 通过正确利用 GitHub Copilot,您可以显着提高编码效率和输出。 通过阅读了解有关 GitHub Copilot 如何工作的更多信息 GitHub 内部:与 GitHub Copilot 背后的法学硕士合作以及定制和微调法学硕士:您需要了解的内容。

利用 GitHub Copilot 的强大功能。 了解更多 或者 现在就开始

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​