Skip to main content

为任务选择合适的 AI 工具

了解 GitHub 的 AI 工具,以及如何使用这些工具来帮助开发软件。

概述

AI 工具的使用正日益成为软件开发人员日常工作流的标准部分。 若要想在就业市场上具有竞争力,就必须了解作为开发人员,在面对每项任务时应使用哪些 AI 工具。

GitHub 的 AI 工具为软件开发生命周期 (SDLC) 的每个阶段提供帮助:

  • 规划
    • Copilot 可以创建问题来帮助跟踪创意。
    • Copilot Chat 可以帮助你集思��益,为项目确定最佳技术。
  • 代码创建
    • Copilot 代码补全有助于在你输入时添加代码。
    • 下一个编辑建议 (公共预览版) 预测你可能进行的下一次编辑,并给出相应的补全建议。
    • Copilot Chat 可以在对话环境中回答问题并提供建议。
    • 你可以将 Copilot 编码智能体 分配给一个开放的问题,它会自动提出一个拉取请求来处理必要的更改。
  • 审查
    • Copilot 代码评审 会在你喜欢的 IDE 中提供反馈,或在 GitHub 上以拉取请求审查形式提供反馈。
  • 测试
    • Copilot Chat 可帮助你编写和调试测试。
  • 部署:
    • Copilot Chat 可帮助你配置持续集成和持续部署 (CI/CD) 管道。
  • 运行:
    • Copilot 编码智能体 (公共预览版) 可为开放问题提出拉取请求。
    • Copilot Chat 可帮助处理你自己处理的任务。

规划

在规划阶段,你定义项目的目标、范围和要求,通过概述需要生成的内容及其实现方式来设置开发方向。

在 GitHub 上,使用由 Copilot 提供支持的问题创建 (公共预览版) 来简化创意跟踪****。 提供简短的自然语言提示(或上传��像),Copilot 将为你生成结构化问题。

选择需要解决的问题后,Copilot Chat 可以帮助你为项目集思广益,了解可能需要的各种工具、库和资源****。 可以询问 Copilot Chat 有关你所设想的项目的一般性问题,以获得方向建议。 例如:

我想生成一个 Web 应用来帮助用户跟踪自己的日常习惯并提供个性化建议。 你能为我推荐一些可以使用的功能和技术吗?

作品

在创建阶段,你将为应用程序编写和完善代码。 你可以通过实现功能、修复 bug 和迭代代码库来实现项目。

当你在喜欢的 IDE 或 GitHub 上进行编码时,Copilot 会提供自动补全风格的编码建议,帮助你更快地起草和完善代码****。 你可以直接编写代码,或在 IDE 中使用评论以自然语言描述意图,Copilot 将生成相关建议。

通过 下一个编辑建议 (公共预览版),Copilot 可以根据你主动进行的更改预测相关的编辑****。 例如,如果重命名变量或更新函数的参数,则会建议在整个代码中进行相应的更新。 这有助于保持一致性并减少错误的可能性。

在询问模式中使用 Copilot Chat

在询问模式下使用 Copilot Chat(作为配对程序员),在编码任务中获得帮助,理解棘手的概念,并改进代码****。 可以实时向它提问、获取解释或请求建议。

你能解释一下此 JavaScript 函数的作用吗? 我不知道它为什么使用 forEach 循环而不是 for 循环。

JavaScript 中的 letconstvar 有什么区别? 我应该在什么时候使用哪一个?

在编辑模式中使用 Copilot Chat

当你想要对 Copilot 提出的编辑进行更精细的控制时,请在编辑模式下使用 Copilot Chat****。 在编辑模式下,选择 Copilot 可以更改的文件,在每次迭代时为 Copilot 提供上下文,并确定是否接受建议的编辑。

重构 calculateTotal 函数以提高可读性和效率。

登录功能无法正常工作。 你能调试吗?

按照 Python 的 PEP 8 风格指南设置此代码的格式。

在代理模式中使用 Copilot Chat

在代理模式中,Copilot Chat 可以帮助自动执行重复任务,并直接在项目中管理工作流****。 在进行代码更改后,使用它来创建拉取请求。 在处理项目时,还可以使用它在后台运行测试和 Linter。

user-auth 模块中的最近更改创建拉取请求,并包含更新摘要。

运行 payment-processing 模块的所有测试和 Linter,并提供所发现问题或错误的摘要。

评价

审查阶段确保代码的质量和可靠性****。 它涉及分析更改、识别潜���问题以及改进代码库的整体结构和功能。

当在 IDE 中编码时,要求 Copilot:

  • 审查所选更改: 突出显示代码的特定部分,并要求 Copilot 进行初步审查。 这非常适合对较小的编辑进行快速反馈。
  • 审查全部更改: 请求对文件或项目中的所有更改进行深入审查。 Copilot 将分析你的工作,并提供改进建议。

准备好在 GitHub 网站上获取其他人的反馈时,首先在拉取请求上将 Copilot 分配为审查者****。 它会自动添加评论,在人工审查前突出显示可以提高代码质量或识别潜在错误的地方。

测试

测试阶段验证应用程序是否正常工作。 此阶段涉及编写和运行测试来捕获 bug、确保功能并在部署之前维护代码质量。

Copilot Chat 可以通过生成单元和集成测试、调试故障和建议其他测试用例来帮助确保全面覆盖****。 下面是一些提示示例:

为此函数编写单元测试,以计算数字的阶乘。 包括 0 和负数等边缘情况。

如何使用 Python 的 unittest 框架运行这些测试?

为 BankAccount 类中的 deposit 函数编写集成测试。 使用模拟来模拟通知系统。

为确保此模块的全面覆盖,还应增加哪些测试?

部署

部署阶段涉及为生产准备代码并确保顺利发行。

Copilot Chat 可帮助配置部署脚本、设置 CI/CD 管道以及排查问题****。 下面是一些提示示例:

使用 GitHub Actions 为 Node.js 应用程序编写部署脚本,以部署到 AWS EC2 实例。

设置 GitHub Actions 工作流以生成、测试 Python 应用程序并将其部署到 Heroku。

分析此部署日志,并提出部署失败的原因。

操作

在操作阶段,重点是在生产中维护和监视应用程序,以确保应用程序顺利运行,并满足用户的期望。 此阶段通常涉及调试生产问题、优化性能以及确保系统可靠性等任务。

可以将 Copilot 编码智能体 (公共预览版) 用作自主代理,帮助维护和改进生产中的应用程序****。 将 GitHub 问题分配给 Copilot,它将自主浏览仓库,识别潜在的修复,并创建包含建议更改的拉取请求。 然后,它会自动请求你进行审查。

对于自己正在解决的问题,请使用 Copilot Chat 来帮助分析日志、调试问题和提出优化建议****。 例如:

分析此错误日志,并提出问题可能的原因。

编写脚本以监视此应用程序的内存使用情况,并在超过阈值时发出警报。

如何优化此代码中的数据库查询以提高性能?

后续步骤

在开始下一个任务之前,请花点时间确定正确的工具,以提高工作速度和效率。

准备好为下一项任务确定合适的 AI 工具了吗?