# 使用 GitHub Copilot 的最佳做法

了解如何充分利用 Copilot。

## 了解 Copilot“优势和弱点”

GitHub Copilot 是一个 AI 编码助手，可帮助你更快地编写代码，且工作量更少，使你能够将精力集中在解决问题和协作上。 在开始使用 Copilot之前，请务必了解何时应且不应使用它。

\*\*
Copilot 最擅长的一些方面包括：\*\*

* 编写测试和重复性代码
* 调试和更正语法
* 解释和注释代码
* 生成正则表达式

\*\*
Copilot 并非旨在用于：\*\*

* 响应与编码和技术无关的提示
* 替换你的专业知识和技能。 请记住，一切由你掌控，而 Copilot 是为你所用的强大工具。

## 为作业选择正确的 Copilot 工具

虽然 Copilot 内联建议和 副驾驶聊天 有一些相似功能，但这两种工具最适用于不同的使用场景。

**内联建议最适合：**

* 在编写过程中完成代码片段、变量名称和函数
* 生成重复性代码
* 根据使用自然语言的内联注释生成代码
* 生成用于测试驱动开发的测试

**或者说，副驾驶聊天 最适用于：**

* 以自然语言回答有关代码的问题
* 生成大量代码并根据需求进行迭代
* 使用关键字和技能完成特定任务。
  副驾驶聊天 内置关键字和技能旨在为提示提供重要上下文并快速完成常见任务。 不同 副驾驶聊天 平台提供了不同类型的关键字和技能。 请参阅 [在 IDE 中向 GitHub Copilot 提问问题](/zh/copilot/how-tos/chat-with-copilot/chat-in-ide#using-keywords-in-your-prompt)。
* 以特定身份完成任务。 例如，你可以判断 副驾驶聊天 它是一位高级 C++ 开发人员，他们非常关心代码质量、可读性和效率，然后要求其查看代码。

## 创建周到的提示

提示工程，也就是对你的请求进行组织，以便 Copilot 能够轻松理解并作出回应，这对于 Copilot 生成有价值的回复至关重要。 以下是在编写提示时应记住的一些简单使用技巧：

* 拆分复杂的任务。
* 具体说明要求。
* 提供有关输入数据、输出和实现等方面的示例。
* 遵循良好编程实践。

若要了解详细信息，请参阅 [GitHub Copilot 对话助手的提示设计](/zh/copilot/concepts/prompting/prompt-engineering)。

## 检查 Copilot 的工作

虽然 Copilot 非常强大，但它仍然是一个能够犯错误的工具，你应该始终验证它建议的代码。 使用以下技巧来确保建议的准确性和安全性：

* **在实现代码之前，要首先了解建议的代码。** 若要确保完全了解 Copilot“建议”，可以要求 副驾驶聊天 解释代码。
* **仔细查看 Copilot建议。** 不仅要考虑建议代码的功能和安全性，还要考虑代码的可读性和可维护性。
* **使用自动测试和工具检查 Copilot其工作。** 借助 linting 和 code scanningIP 扫描等工具，可以自动执行额外的安全和准确性检查层。

> \[!TIP] （可选）可能需要检查 Copilot其工作是否与现有公共代码相似。 如果不想使用类似的代码，可以关闭与公共代码匹配的建议。 请参阅 [以个人订阅者身份管理 GitHub Copilot 策略](/zh/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code) 或 [管理组织中GitHub Copilot的策略和功能](/zh/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies)。

## 引导Copilot产生有帮助的输出

可以进行一些调整来引导 Copilot 做出更有价值的响应：

* **为 Copilot 提供有帮助的上下文：**
  * 如果你在 IDE 中使用 Copilot，请打开相关文件并关闭无关文件。
  * 在 副驾驶聊天 中，如果某个请求不再是有用的上下文，请将该请求从对话中删除。 或者，如果某次对话的上下文对你没有帮助，可以直接开始一个新的对话。
  * 如果使用 GitHub 中的Copilot 对话助手、提供特定的存储库、文件、符号等作为上下文。 请参阅 [在GitHub中询问有关GitHub Copilot的问题](/zh/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-github)。
  * 如果您在 IDE 中使用 副驾驶聊天，请使用关键字让 Copilot 专注于某项特定任务或某段上下文。 请参阅 [在 IDE 中向 GitHub Copilot 提问问题](/zh/copilot/how-tos/chat-with-copilot/chat-in-ide#using-keywords-in-your-prompt)。
* **重写提示以生成不同的响应。** 如果 Copilot 没有提供有帮助的回复，请尝试重新表述你的提示，或者甚至将你的请求拆分成多个较小的提示。
* **选择最佳可用建议。** 使用内联建议时， Copilot 可能会提供多个建议。 可以使用键盘快捷键来快速查看所有可用的建议。 有关操作系统的默认键盘快捷方式，请参阅 [IDE 中GitHub Copilot 的键盘快捷方式](/zh/copilot/reference/keyboard-shortcuts)。
* **提供反馈以改进未来的建议。** 可以通过多种方式提供反馈：
  * 对于内联建议，请接受或拒绝 Copilot 的建议。
  * 对于 副驾驶聊天 中的单条回复，请点击该回复旁边的点赞或点踩图标。
  * 有关 IDE 中的 副驾驶聊天，请参阅 [在 IDE 中向 GitHub Copilot 提问问题](/zh/copilot/how-tos/chat-with-copilot/chat-in-ide#sharing-feedback)，获取适用于您的环境的说明。
  * 有关 GitHub 中的Copilot 对话助手，请在 [反馈讨论](https://github.com/orgs/community/discussions/110314)中留言。

## 及时了解 Copilot 的功能更新

我们会定期向 Copilot 添加新功能，以实现新的能力、在现有功能基础上进行扩展，并提升用户体验。 若要及时了解 Copilot 的最新功能，请参阅 [更新日志](https://github.blog/changelog/label/copilot/)。