探索 GitHub Copilot 工作区:改变开发游戏规则的早期见解
- Rifx.Online
- Programming , Generative AI , Technology/Web
- 19 Jan, 2025
(免责声明:本文撰写于 GitHub Copilot Workspace 成为主流之前。发布时,Copilot Workspace 处于技术预览阶段,已上线大约三周。)
当 GitHub 在 2024 年 10 月的 GitHub Universe 事件中宣布 “GitHub Copilot Workspace” 时,我不禁将其视为改善 IDE 中开发者体验的下一步。作为一名常规 IntelliJ 用户,我非常欣赏 IntelliJ 背后的公司 JetBrains 在为 IntelliJ 添加 AI 驱动功能方面的努力。然而,Copilot Workspace 承诺将彻底改变我们编写代码的方式,因此我非常想尝试它。
在技术预览可用公告发布后,我登录了我的 GitHub 账户,加入了等待名单,然后结束了那一天。令我惊讶的是,第二天早上,我收到了授予我预览访问权限的电子邮件。
什么是 Copilot Workspace?
如果你还没有听说过,Copilot Workspace 是 GitHub 的 AI 原生开发环境,请注意,它与常规的 Copilot 不同。它允许你通过用自然语言编写请求来生成代码,你可以使用英语、西班牙语、德语或任何你流利的语言。作为一个完整的开发环境,它包含额外的与代码相关的功能。
在获得访问权限后,我决定使用我维护的一个用于教授 Camunda 8 的代码库来进行测试。一旦你开始会话,就可以以迭代的方式使用 Copilot Workspace,一次迭代的主要 3 个步骤是:
- 头脑风暴
- 计划
- 实施
头脑风暴:你的思维伙伴
我在浏览器中使用了 Copilot Workspace,因此你看到的所有截图都是从在线会话中截取的。还有一个 Visual Studio 的插件,但我在这篇文章中没有使用它。
文档中提到你可以将 Copilot Workspace 作为你的思维伙伴,这在不同层面上都适用,你可以已经有一个想法,或者你请求 Copilot Workspace 开始头脑风暴,这正是我的情况。
作为新手,我没有现成的想法,我想探索并观察,我开始用简单的语言问了以下问题:你能提供这个仓库的概述吗? 就这样,没有其他细节或上下文。Copilot Workspace 分析了这个仓库,并给了我一个令人印象深刻的答案。
令人兴奋的是它提供的细节水平:清晰、具体且精准的解释。出于对其灵活性的好奇,我想看看我是否可以请求对特定模块的解释,以及它将如何向我展示这些内容。我的项目包括两个模块:
- 一个主要由 Spring starters 组成的完全功能模块
- 一个“原始” Java 模块,包含多个待办事项和改进点
这两个模块本质上都是 Camunda 的工作者。当我询问这两个模块之间的区别时,它总结了主要变化和模块之间的实际差异点。
我非常喜欢信息的呈现方式,使用易于理解的句子。信息流也感觉很合适,因为它能够以易懂的方式解释相当复杂的内容。
我注意到的一个突出特点是“查看引用”链接,在这里我检查了 Copilot Workspace 在其分析中使用的文件。将这些文件与我对仓库的详细了解进行比较,我很高兴地看到它列出了许多重要文件。
我决定在熟悉头脑风暴的基础上,想看看它在任务方面的表现,例如 重构 或添加注释。坦白说,普通的 Copilot 在这两方面的表现已经非常出色。Workspace 的关键在于观察它如何轻松地将我从想法转变为实现,以及使用简单英语的流畅度。因此我询问了可以改进的地方。
计划:从想法到策略
我从头脑风暴中选择了一个想法:重构一个类。我将这个想法复制到聊天中并点击了“计划”按钮。工作区分析了请求,进行了某些更改,并提供了这些更改的摘要。这些更改是**“堆叠的”**,尚未实施。这提供了审查和决定如何进行的时间,换句话说,这是一种深思熟虑的方法,使开发者掌握控制权。
实现:从计划到代码
在点击“实施选定文件”之前,我注意到“头脑风暴”按钮仍然处于激活状态。出于好奇,我再次点击以查看会发生什么。令我惊讶的是,Copilot Workspace 提供了当前情况与建议解决方案之间的比较。这为我们提供了关于变更潜在影响的宝贵见解。
没有其他偏差,我点击了“实施”。变更已执行,代码准备好供审查。Copilot Workspace 提供了一个实时编辑器以进行进一步调整,但我将我的角色限制为仅观察生成的代码并批准它。
一旦批准,Copilot Workspace 创建了一个拉取请求(或合并请求,我更喜欢这个术语)。我需要去代码库的常规“拉取请求”标签,并按照任何拉取请求的正常程序操作。
大局观:读懂潜台词
我没有写过一行代码,只是像做笔记一样输入我的想法,我可以说 GitHub Copilot Workspace 完全基于纯文本工作,保持在实时编辑器中编辑代码的机会。开发者掌控着工作流程和涉及的步骤。作为一个预览版,它已经非常强大,并且具备了先进的功能和能力。
我喜欢它吗?是的,我喜欢,但我也有一些保留意见。在这篇文章中,我展示了我第一次使用它的过程,效果很好。从那时起,我使用 Copilot Workspace 进行了几次修改,并注意到在我的情况下,它在处理库时表现不佳,但在结构方面表现出色。在一次会话中,我花在它身上的时间比自己编码更长。然而,我也可以争辩说,这与我的提示以及该产品仍处于预览阶段有关。
如果我们把 Copilot Workspace 看作是面向专业开发者的 AI 原生开发环境,这些是我早期的结论:
- 开发者充当 需求工程师。仍然需要领域知识来提供适当的输入。
- 开发者充当 验证者,这样的工具确保 人类始终参与其中,确保 IDE 在执行我们想要的操作。
- 像这样的 AI 驱动工具通常需要专业知识才能有效操作。这里的趋势是,当一个工具是 AI 驱动并且面向高技能受众时,该工具往往在功能和设计上更加专业化。
随着它的发布,可以说,AI 领域正在超越基础模型逐渐成熟。公司现在正在利用这些模型创建独特的以用户为中心的应用程序和代理。
GitHub 正日益成为 AI 开发社区的首选之地,其他产品未来可能不会像我们所熟知的那样优秀,因为它们有落后的风险。主要原因是,GitHub 正在整合来自各大参与者的努力,以包括对 AI 工具的访问,并推动开发创新的下一个阶段。
如果你想亲自试用,可以在 这里 加入候补名单。