《2023年如何使用GitHub Copilot | 初学者指南+视频》
无论是初学者还是专业人士,我们展示如何使用GitHub Copilot,包括使用注释,自动补全,测试案例和聊天工具,附带视频指导
在这篇文章中,我们将详细介绍如何在VSCode中使用GitHub Copilot,并通过详细的视频示范来帮助您。
无论您是初学者还是专家,我们都会向您展示如何使用GitHub Copilot,包括使用自然语言注释生成代码、自动完成、测试案例和聊天工具。
为了帮助您充分利用本文,我们还提供了详细的视频,展示了如何针对每个用例使用GitHub Copilot。
此外,如果您对AI编码助手还不熟悉,我们将从GitHub Copilot是什么开始概述,包括您可以如何使用它、数据隐私以及为什么需要使用它。
听起来不错吧?太棒了,让我们开始吧!
GitHub Copilot是什么?
那么,GitHub Copilot究竟是什么呢?
如果您访问GitHub网站,您会看到它被描述为建立在openAI codex之上的人工智能编程伙伴。
这是个不错的回答。但让我们深入了解一下!
它于2021年发布,实际上是GitHub、OpenAI和Microsoft的合作结果。
这使它成为第一个主流人工智能代码助手,这也可能是它目前在开发者中间最受欢迎的AI编码助手之所在。
与任何集成开发环境提供的标准自动补全工具不同,Copilot会根据上下文提供整个代码块的建议。
那到底是什么意思呢?
简单来说,您可以编写一些描述您目标的代码或注释,Copilot将分析它并提供代码建议。
因此,无论您是想理解一个新的Python算符,还是在撰写一个棘手的算法时需要帮助,Copilot都可以帮助您。
关于Copilot最有趣的事情之一是它是基于公共GitHub代码库进行训练的。
如果您阅读文档,Copilot声称能够为任何在GitHub上具有公共存储库的语言生成代码。
根据我的经验,它最适合流行的编程语言,如Python、JavaScript、TypeScript、Ruby、Go、C#和C++。
例如,如果您正在开发一个Python项目,相比于使用Fortran等语言,您更有可能获得有帮助的建议。
当我们谈到训练数据时,如果您花时间浏览GitHub上的公共存储库,您就会发现它们在质量和准确性上存在差异。
因此,您应该假设Copilot的一些建议可能包含过时的编码模式、错误或对已废弃API的引用。
根据GitHub自己的统计数据,只有26%的Copilot建议被接受。
我认为这里的信息很明显。在接受任何代码建议之前,务必检查它们!
在我看来,这正是这些工具不能代替真正的开发人员的原因。
但它们可以帮助您提高效率。
由于它的受欢迎程度,Copilot可以与各种IDE和代码编辑器集成。
截至目前,您可以在Visual Studio Code、Visual Studio、JetBrains IDE(IntelliJ IDEA、PyCharm)套件、Vim、Neovim和Azure Data Studio中使用插件。
在本文中,我将使用VSCode,但设置这些插件非常简单。
最后,让我们谈谈最新的Copilot功能,即GitHub Copilot Chat。
这提供了与ChatGPT或Google Bard类似的直接与LLM进行交互的格式。
是的,这意味着在编码时您可以得到一个专属于您的聊天机器人的帮助。
“`html
截至今天,这仅在Visual Studio Code和Visual Studio中支持beta版。我们将在本文稍后进行检查。
我还应该提到下一个版本Copilot X计划进一步改进聊天工具,但尚未确定发布日期。
我需要担心数据隐私吗?
这是我在开始使用Copilot时想要立即弄清楚的事情。
例如,我的私人代码是否有被复制或在Copilot的建议中应用于其他编程人员的风险?
总结一下,除非您在设置中关闭代码段收集,否则提示和建议将保留给个人使用。
您还可以通过联系GitHub支持,防止提示和建议的数据与您的GitHub身份关联。
最重要的是,您的代码不会与其他Copilot用户共享。我还喜欢数据在传输和静态状态下进行加密。
尽管如此,如果您对高安全性非常敏感,您需要知道GitHub和Microsoft的工作人员可以访问您的数据。
个人和企业用户的数据保留时间也有不同。
如果您选择了商业计划,您无需担心这个问题,因为Copilot不会保留任何提示或建议。
如果您不确定哪种GitHub Copilot订阅适合您,请查看这个快速比较。
个人版Copilot |
企业版Copilot |
价格:每月$10或每年$100 |
价格:每用户每月$19 |
主要功能:遥测,阻止匹配公共代码的建议,与IDE或编辑器集成,多行函数建议。 |
高级功能:包括个人版所有功能,组织范围的策略管理,审计日志以及具有自定义证书的HTTP代理支持。 |
我可以用GitHub Copilot做什么?
无论您是新手开发者还是经验丰富的专业人士,您可以肯定AI工具像Copilot将在未来无处不在。
尽管如此,如果您对AI编码助手的世界还不太了解,您可能想知道您可以用它们做什么。
让我们来看看GitHub Copilot的一些主要用途:
- 代码建议:Copilot可以使用您现有代码的上下文或自然语言注释来建议新的代码片段或块。
- 生成测试案例:Copilot可以帮助您为现有代码库生成全面的测试案例。
- 代码重构和优化:Copilot可以优化代码以获得更好的大O复杂度性能,或改善代码的结构和可维护性。
- 代码审查和错误检测:Copilot可以突出显示您代码中的问题或错误。不再需要搜索那些难以找到的Python错误!
- 文档辅助:Copilot可以生成或更新文档。
为什么使用GitHub Copilot?
也许您已经阅读了之前的部分,但是您还在犹豫为什么应该使用Copilot?
我理解。毕竟,难道没有AI将取代开发者的风险吗?
我认为这是一个普遍的担忧,但在我看来,这些工具还远远没有准备好能够完成真正开发者的工作。
暂时来说,我喜欢把像Copilot或Amazon CodeWhisperer这样的工具看作是可以帮助我更快完成任务的AI助手。
“`
这也意味着我仍然需要编码知识和专业知识,以了解Copilot的建议是否好。
考虑下这种情况。你不会让一个实习生在没有监督的情况下处理一项关键任务,所以你应该以同样的方式对待Copilot。
这也强调了一个重要的观点,即Copilot并不旨在取代学习。
我认为这是将这些人工智能工具引入工作流程的最棘手的方面之一,因为依赖人工智能来完成工作的诱惑是巨大的。
但是,如果你能找到一个自然的平衡,Copilot可以帮助你成为一名更高效的开发人员,无论你是学生、初学者还是专业开发人员。
例如,如果你是一名学生,Copilot可以帮助你:
- 通过即时反馈和建议来实现加速学习。
- 在遇到困难的任务时提供作业和项目辅助。
- 了解代码的概念。
同样,刚刚从Python课程毕业的新开发人员可以在以下方面获得帮助:
- 通过更干净、更高效和易于维护的代码实现代码质量的提升。
- 通过比使用Google或Stack Overflow更快的帮助提高生产力。
最后,专业开发人员可以获得以下好处:
- 通过实时建议提高速度和效率,帮助你更快地编写代码。
- 通过快速突出显示潜在问题和错误来进行代码审查。
- 通过请求AI处理重复任务来减少模板代码。
如何使用GitHub Copilot
当涉及到像GitHub Copilot这样的人工智能工具时,弄清楚它们的工作方式的最好方法之一是启动它们并通过实践来学习。
这可能是一个快速而有趣的测试方式,但可能并不是最高效的方式。
因此,与其乱尝试,不如采用一个有结构的方法,弄清楚如何以下几种方式使用GitHub Copilot:
- 使用自然语言注释描述我们的编码目标
- 依靠Copilot的自动补全功能来自现有的代码库
- 使用Copilot生成我们现有代码库的测试用例
- 使用beta版的Chat功能来寻求帮助、寻求建议并生成代码
我认为这些是任何初学者应该掌握的使用Copilot的最常见的方面。
所以,废话不多说,让我们开始编码吧!
重要提示:确保你有一个GitHub账号和一个活跃的Copilot订阅,然后在你的集成开发环境(IDE)或代码编辑器中安装GitHub Copilot扩展,并启用GitHub Copilot。
使用注释来生成代码
Copilot的最酷的功能之一是能够从自然语言注释中生成代码行。
这与prompt工程密切相关,得益于像ChatGPT这样的人工智能工具,prompt工程变得越来越流行。
但这意味着什么呢?
想象一下,如果我知道我想要做什么,我可以用简单的英语作为标准的代码注释来写下来。
Copilot可以读取这个注释,解释这个信息,并用它来生成代码建议。然后我可以按下tab键接受它,或者可以忽略它。
当然,我可能不会对Copilot的第一个建议完全满意,但没关系,因为我可以修改我的注释或提供额外的细节。
Copilot会根据这个进行调整并调整其代码建议。
我认为这种方法最大的好处是,我现在可以使用注释来加速代码生成。
往往情况下,这只是为了启动项目或新想法,然后我可以自己详细阐述。
再次,将Copilot视为您自己的AI实习生,他热衷于帮助,但可能经验不足以承担重任。
现在,如同往常一样,记住一个非常重要的一点,那就是虽然Copilot愿意帮助,但 在接受任何建议时要持有批判的心态是至关重要的。
始终要审查和测试建议的代码以确保准确性,效率和安全性。
绝对不要只依赖于不理解其工作原理的自动生成的代码,因为这可能会导致后续问题。
想一想 – 如果你不知道它是如何工作的,你怎么调试它?!
现在,如果你准备好了,请查看下面的视频,了解如何在Copilot中使用注释来生成代码。
我将使用Python,我将请求Copilot帮助我生成返回斐波那契数列以及面向对象的类的不同版本的函数。
使用Copilot的自动完成功能
也许GitHub Copilot的旗舰功能是其基于人工智能的自动生成的自动完成。
这与您在IDE中体验过的自动完成非常不同,它是通过分析大量的编码模式来提供实时建议的结果。
如果你之前没有使用过Copilot,你可能会被它的工作原理惊呆。
只需开始编写代码,Copilot会提供一个内联建议,提示下一步该写什么。
无论您是编写简单的循环,列表推导式,函数,类还是其他任何您能想到的东西,Copilot都会提供代码建议。
而且,说实话,它有时候感觉就像魔法,或者就像它在读你的心思!
当然,这些自动完成的效果完全取决于您的编码风格。
例如,如果您编写易于理解的代码,并遵循良好的命名规范,Copilot会发光发热。
例如,如果您正在编写一个用于过滤列表的函数,Copilot在您输入前几个字符后可能会建议整个函数逻辑。
另外,您在编码过程中越频繁使用Copilot,它就会越擅长提供与您的编码风格和项目需求相符的自动完成建议。
另一方面,如果您随意编写,使用单个字母的变量名和没有意义的函数名,Copilot将难以理解您的目标。
在后一种情况下,我实际上认为最好避免使用Copilot,因为它可能会成为阻碍,而不是帮助。
当然,您的意见可能与我的不同!
主要的观点是Copilot可以评估您代码库的上下文以提供代码建议。
而且这些建议相当令人印象深刻!
也就是说,如果建议与您的目标不符,请简单地拒绝它们并继续进行。或者,如果您希望Copilot提供帮助,尝试使用注释(就像我们上面介绍的那样)以提供更多的上下文。
请记住,您的AI助手正在尽最大努力帮助您,但它始终将按照您的指导来给予帮助。
因此,如果您没有得到很好的建议,请考虑您的代码是否清晰,或者您的命名规范是否可以改进。
同样,如果您使用的是不常见的语言,您会发现Copilot可能无法提供与Python等语言一样多的帮助。
最后,如同往常一样,始终要审查和测试任何建议的代码来确保准确性。
正如我们在使用注释时提到的,不要依赖不理解其工作原理的自动生成的代码!
现在,让我们看一段视频,了解如何利用Copilot的自动完成功能。
再次说明,我将使用Python,但这次我将与Copilot一起创建用于加密和解密文本的函数,以及检查字符串是否为回文的另一个函数。
使用Copilot生成测试代码
谈到软件开发,测试是开发生命周期中最重要的方面之一。
毕竟,我们需要我们的代码按照预期工作!
这就是测试发挥作用的地方,Copilot又可以帮助我们了。
通过借鉴我们已经介绍过的注释和自动完成功能的技巧,我们可以请Copilot生成我们代码的测试用例。
就像你使用Copilot的大多数功能一样,有多种方法可以解决这个问题。
首先,我们可以在注释中提供上下文信息。
Copilot可以使用此信息分析函数或方法的逻辑和目的,然后生成相关的测试用例。
您还可以要求Copilot与测试框架一起工作,例如Pytest用于Python,Jest用于JavaScript或JUnit用于Java。
根据您想要深入了解的程度,您可以与Copilot进行交互,寻求发现边缘情况、重构现有测试函数或提高代码覆盖率的帮助。
如果您准备好了,我们先看一个视频,了解如何使用Copilot进行测试。
在此示例中,我将使用Python,并请求帮助为我们在前几个部分中生成的所有代码创建测试函数。
使用Copilot聊天工具获取帮助和建议
Copilot最新的功能之一是集成的聊天工具。目前正在测试版,仅在VSCode或Visual Studio中可用。
这是一个非常方便的功能,因为它以与您可能已经熟悉的ChatGPT相同的格式提供与语言理解模型互动的直接接口。
在与OpenAI的合作中,我很好奇是否有计划将您自己的GPT集成到将来的版本中,因为这可以成为个性化您的CoPilot聊天体验的一种有趣方式。
有了这个聊天功能,您无需离开IDE并进入ChatGPT界面,即可与一个大型语言模型在您最喜欢的Python IDE内进行交互!
这也许是我最喜欢的一点,因为它有助于保持编码流程。
您可以选择使用专用聊天窗口,也可以使用键盘快捷键在代码窗口内显示弹出聊天框。
这个功能的可能性几乎是无限的。
例如,您可以通过提问并立即获得针对特定上下文的答案来取代传统文档或论坛的浏览。
这也使得聊天工具对于学习编程概念或算法非常理想。
只需提问,Copilot聊天即可提供解释和代码示例来增强理解。
我还喜欢聊天工具建议您可能想要询问以扩展对当前主题的理解的其他问题。
一个很好的例子是询问一个算法时,Copilot chat通常会建议了解时间复杂度。
对于初学者来说,这很棒,因为它可以帮助您自然地扩展知识。
我得说,当涉及到使用聊天工具共享你的代码片段以获取帮助时,界线可能会变得有点模糊。
从技术上讲,您可以在代码窗口中使用自然语言注释来做同样的事情。
但如果您更喜欢ChatGPT之类的交互式和对话式方法,聊天工具可以提供这一点。
所以,请随意与Copilot对话谈论您的代码,无论是获取见解、优化还是修正。
我们来看一个视频,了解如何使用Copilot的聊天工具。请注意,我将使用VSCode以确保与测试版的兼容性。
使用GitHub Copilot的技巧和建议
如果您到现在为止已经掌握了如何使用Copilot,那么您应该已经具备了扎实的理解。
但也许您想要关于如何使用GitHub Copilot的一些建议和技巧?
没问题,我来帮你!这里是我使用 Copilot 的顶级技巧:
- 明确意图: 使用描述性、清晰、简洁的注释来传达你的意图,以帮助 Copilot 将注释转化为有用的代码建议。
- 互动起来: 如果初始的代码建议不合适,修改你的输入或提供更多上下文来帮助 Copilot 逐步调整其建议。
- 不要完全依赖自动补全: 总是要审查自动补全!拜托了!你需要确保它们符合你的需求,同时保持你的代码质量。
- 使用聊天获取更深入的见解: 如果你遇到挑战或对实现某个功能不确定,使用 Copilot 聊天功能寻求帮助。
- 测试生成的代码: 总是测试 Copilot 建议的代码,特别是如果它是应用程序的关键部分。
- 多样化学习来源: Copilot 可以用于快速解决问题和生成代码,但你还需要通过使用文档、教程和论坛等资源多样化学习。
- 理解许可权问题: 请记住,Copilot 生成的代码可能基于公共代码库。如果你的项目有许可要求,请审查生成的代码以避免许可冲突。
- 提供反馈: Copilot 不仅从代码中学习和改进,还使用用户的反馈。如果你发现不准确或有改进建议,请分享给我们。这也有助于为社区增强这个工具。
总结
现在我们已经了解了如何使用 GitHub Copilot!
无论你是初学者还是经验丰富的专业人士,我们都介绍了如何使用自然语言注释、自动补全、生成测试用例以及使用 GitHub Copilot 聊天工具。
我们还包括了一系列详细的视频,使用 Python 和 VScode 来展示如何在这些用例中使用 GitHub Copilot。
如果你是对 AI 编程助手全新的,我们甚至还有一个摘要来概括 GitHub Copilot,包括你可以如何使用它、数据隐私以及为什么你需要使用它。
无论你想用什么编程语言编写代码,我们希望这篇文章对你有所帮助,现在你已经准备好将 GitHub Copilot 集成到你的工作流程中。
Happy coding!
如果你是开发的新手,并准备使用 AI 编程助手作为你的个人导师,请查看:
常见问题
1. 什么是 GitHub Copilot 以及如何使用它?
GitHub Copilot 是一个 AI 编程助手,可以根据你现有代码库的上下文或详细的自然语言注释生成代码。你可以通过安装必要的插件或扩展来在你喜欢的 IDE 或代码编辑器中使用它。
2. 如何让 GitHub Copilot 写代码?
Copilot 将自动提供代码建议,以匹配你现有代码库的上下文,或者你可以发表自然语言注释来让它写代码。你还可以使用测试聊天工具来生成并插入代码到你的代码库中。
人们还在阅读:
Leave a Reply