半年前,我开始认真使用GitHub Copilot Chat。

在此之前,我也用过Copilot的代码补全功能,但只是把它当成一个高级的自动补全,写几行代码让它补全,用得比较浅。后来Copilot Chat功能出来了,可以直接和AI对话,问问题、让它写代码、帮你调试,我才发现这才是AI编程助手的正确打开方式。

这半年用下来,Copilot Chat已经成了我开发中不可或缺的工具,编码效率提升了至少30%。这篇文章就来分享一下我学习使用Copilot Chat的完整路线,从入门到进阶,希望能给刚开始用的朋友一些参考。

第一步:安装和配置

学习任何工具,第一步都是安装和配置。

GitHub Copilot Chat目前集成在几个地方:Visual Studio Code、Visual Studio、JetBrains系列IDE(通过插件)、GitHub.com的网页版。我主要用VS Code,就以VS Code为例。

安装很简单:

  1. 在VS Code的扩展商店里搜索"GitHub Copilot",安装官方的扩展。
  2. 安装之后,用GitHub账号登录。需要有Copilot的订阅(个人版每月10美元,学生和开源维护者免费)。
  3. 登录成功之后,VS Code的侧边栏会出现一个Copilot的图标,点击就能打开Chat界面。

配置方面,我建议做这几个设置:

  • 开启"Inline Chat"(内联聊天),可以在代码编辑器里直接和Copilot对话,不用切换到侧边栏,效率更高。
  • 配置快捷键。我给"打开Copilot Chat"设了一个快捷键(Ctrl+Shift+C),给"内联聊天"设了另一个快捷键(Ctrl+I),用键盘快速调出,比用鼠标点快很多。
  • 开启"代码引用"功能。Copilot生成代码的时候,如果参考了开源代码,会显示引用来源,方便你检查许可证和代码质量。

安装配置好之后,先别急着写复杂的东西,从简单的对话开始,熟悉它的脾气。

第二步:基础用法

熟悉了界面之后,开始学习基础用法。我把Copilot Chat的基础用法分成了几类。

第一类:解释代码。这是我用得最多的功能之一。看到一段看不懂的代码(比如开源项目里的复杂逻辑、同事写的巧妙代码),选中代码,打开Copilot Chat,输入"解释这段代码",它就会用通俗易懂的语言给你解释代码的功能、逻辑和注意事项。

这对于阅读陌生代码特别有用。以前看一段复杂的代码,要花十几分钟才能理解;现在用Copilot Chat解释一下,几分钟就能搞懂。

第二类:生成代码。告诉Copilot你想要什么功能,它就能帮你写代码。比如"写一个函数,输入一个数组,返回数组中出现次数最多的元素",它就会给你生成完整的函数,包括注释和示例用法。

生成代码的时候,描述越详细,结果越准确。要说明输入输出、边界条件、性能要求、用什么语言和框架。不要只说"写一个排序函数",要说"写一个快速排序函数,用Python实现,处理整数数组,包含注释"。

第三类:优化代码。把你写的代码贴给Copilot,让它帮你优化。比如"优化这段代码的性能""简化这段代码""给这段代码加上错误处理"。它会分析你的代码,给出优化后的版本,并解释优化了什么。

我经常用这个功能来review自己的代码。写完一段代码,让Copilot看看有没有问题、能不能优化,往往能发现一些自己忽略的问题。

第四类:调试代码。代码出了bug,把错误信息和相关代码贴给Copilot,问它"这段代码为什么会报这个错,怎么修复"。它会分析错误原因,给出修复方案。很多时候,它能一眼看出你忽略的问题。

当然,它不是万能的,有时候给出的修复方案不对,需要你自己判断。但作为一个调试的参考,它非常有价值。

第五类:写测试。让Copilot帮你写单元测试。把函数贴给它,说"给这个函数写单元测试,覆盖正常情况、边界情况和异常情况"。它会生成完整的测试代码,省了很多写测试的时间。

第三步:进阶技巧

掌握了基础用法之后,开始学习一些进阶技巧,让Copilot Chat用得更高效。

第一个技巧:用好上下文。Copilot Chat能看到你当前打开的文件、选中的代码、项目的结构。你给的上下文越多,它的回答越准确。比如问问题的时候,先选中相关的代码,再提问;或者在问题里说明你用的语言、框架、版本。

我还发现,把整个文件的内容让Copilot看一遍(用"@workspace"或者直接把文件内容贴进去),它对项目的理解会更深入,回答也更贴合项目的代码风格。

第二个技巧:用斜杠命令。Copilot Chat有一些内置的斜杠命令,比如"/explain"(解释代码)、"/tests"(写测试)、"/fix"(修复问题)、"/doc"(写文档)、"/optimize"(优化代码)。用这些命令比用自然语言描述更直接,效果也更好。

比如选中一段代码,输入"/tests",它就直接给你写测试;输入"/doc",就给你写文档注释。这些命令能省很多打字的时间。

第三个技巧:多轮对话。Copilot Chat支持多轮对话,你可以在之前的回答基础上继续追问。比如它给你生成了一段代码,你可以说"加上异常处理""改成异步版本""用函数式编程的风格重写"。它会理解上下文,在之前的基础上修改。

多轮对话是Copilot Chat最强大的地方之一。你可以像和同事讨论一样,和它反复打磨一段代码,直到满意为止。

第四个技巧:用Agent模式。Copilot Chat有一个Agent模式(在VS Code里叫"Workspaces"或者"Agent"),它可以自动读取你的项目文件、执行命令、修改代码,完成更复杂的任务。比如"帮我把这个项目里所有的var改成let和const""给这个项目加上ESLint配置"。

Agent模式比普通的Chat更强大,因为它能真正理解整个项目,而不只是你贴给它的代码。但它也更"危险",因为它会直接修改你的文件,用的时候要注意检查它的改动。

第五个技巧:自定义指令。你可以给Copilot设置自定义指令,告诉它你的偏好。比如"我用TypeScript,严格模式,喜欢用函数式编程,代码要包含JSDoc注释"。设置之后,它生成的代码会更符合你的风格,不用每次都重复说明。

第四步:最佳实践

用了一段时间之后,我总结了一些最佳实践,能让Copilot Chat用得更好。

第一,把Copilot当成助手,不是替代品。Copilot能帮你写代码、找bug、解释逻辑,但最终的判断和责任还是在你。它生成的代码一定要自己看一遍,确认没有问题再用。不要盲目复制粘贴,否则可能会引入bug或者安全漏洞。

第二,学会提问。和Copilot对话,提问的质量决定了回答的质量。要清晰、具体、有上下文。不要问"怎么写一个网站",要问"用React和TypeScript写一个待办事项应用,包含添加、删除、标记完成功能,用函数组件和Hooks"。

第三,分步骤解决复杂问题。不要指望Copilot一次帮你完成一个复杂的大功能。把大问题拆成小问题,一步步来。比如先让它写数据结构,再写核心逻辑,再写UI,最后整合。每一步都检查确认,再进行下一步。

第四,保护敏感信息。不要把公司的机密代码、API密钥、密码等敏感信息贴给Copilot。虽然GitHub说不会用你的代码训练模型,但谨慎一点总是好的。在公司用的时候,要遵守公司的安全政策。

第五,持续学习。Copilot的功能在不断更新,新的能力和特性经常出现。要关注官方的更新日志,学习新的功能和用法。我每个月都会花一点时间,看看Copilot有什么新功能,试试新的用法。

第六,结合其他工具。Copilot Chat不是唯一的AI编程工具,可以和其他工具结合使用。比如用Copilot写代码,用ChatGPT做架构设计,用Claude做代码review。不同的工具有不同的优势,结合起来用效果更好。

我常用的场景

分享一下我日常工作中,最常用Copilot Chat的几个场景。

场景一:学习新技术。学一个新的框架或库的时候,我会让Copilot给我解释核心概念,写示例代码,回答我的疑问。比如学React Server Components的时候,我问了它很多问题,从基础概念到实际用法,它都能给我讲清楚,比自己看文档快很多。

场景二:写样板代码。很多代码是重复性的样板代码,比如CRUD接口、数据模型、配置文件。这些代码让Copilot写,又快又好,我只需要检查和调整就行。省下来的时间,可以用在更有挑战性的工作上。

场景三:重构代码。重构的时候,我会让Copilot帮我分析代码的坏味道,给出重构建议,然后帮我执行重构。比如"把这个大类拆分成几个小类""把这个函数的重复代码提取出来"。它能帮我发现一些自己忽略的重构机会。

场景四:写文档。我最不喜欢写文档,但Copilot能帮我写。把代码贴给它,让它写函数注释、模块说明、README。它写的文档虽然有时候不够精准,但作为初稿完全够用,我只需要修改和补充。

场景五:学习代码库。加入一个新项目,面对一个陌生的代码库,我会让Copilot帮我解释项目结构、核心模块、关键流程。它能快速帮我建立对项目的整体理解,比自己一行行读代码快很多。

一些注意事项

最后,说一些使用Copilot Chat的注意事项。

第一,代码质量。Copilot生成的代码质量参差不齐,有时候很好,有时候有明显的问题。一定要自己审查,不要直接用。特别是涉及安全、性能、并发的代码,更要仔细检查。

第二,许可证问题。Copilot可能会生成和开源代码相似的代码,如果你的项目对许可证有严格要求,要注意检查。可以开启Copilot的代码引用功能,看到生成代码的来源。

第三,不要过度依赖。用Copilot时间长了,容易产生依赖,遇到问题第一反应是问Copilot,而不是自己思考。这会让你的编程能力退化。要保持自己的思考和判断,把Copilot当成辅助工具,而不是拐杖。

第四,隐私和安全。在公司用Copilot的时候,要确认公司的政策允许。有些公司禁止把代码发送到外部AI服务,这时候就不要用。个人项目也要注意,不要把敏感信息贴进去。

第五,成本。Copilot个人版每月10美元,企业版更贵。对于经常写代码的人来说,这个钱是值得的,能省很多时间。但如果只是偶尔写代码,可能不太划算,可以考虑用免费的替代方案。

写在最后

GitHub Copilot Chat是我这几年用过的最能提升开发效率的工具。

它不是要取代程序员,而是要让程序员从重复的、机械的工作中解放出来,把精力用在更有创造性、更有价值的事情上。用好它,你的编码效率会提升,代码质量会提高,学习新技术的速度也会加快。

但它也不是银弹。它需要你会提问、会判断、会审查。它是一个强大的助手,但最终的决策者还是你自己。

这篇文章分享了我学习使用Copilot Chat的路线和经验,从安装配置、基础用法、进阶技巧到最佳实践。希望能给刚开始用的朋友一些参考。

AI编程是未来的趋势,早一点学会用这些工具,就能早一点受益。但也不要盲目跟风,根据自己的需求和情况,选择适合自己的工具和用法。

最后,愿我们都能在AI的帮助下,写出更好的代码,做更有创造力的工作。