构建完全可扩展的开发者协作平台

2025-06-07

构建完全可扩展的开发者协作平台

注意:我是Visual Studio Live Share团队的成员,这篇文章是系列文章的一部分,解释了我们构建该产品的原因以及我们正在探索的想法。

现实世界的开发涉及的复杂性不仅仅是编写代码,这就是协作工具需要超越基本的实时编辑器的原因。当我们构建Visual Studio Live Share时,我们希望支持端到端开发人员协作,不仅提供实时编辑,还提供远程语言支持(自动完成、转到定义等)、项目范围的导航/搜索、共享构建、调试、终端、本地服务器、源代码控制集成聊天和代码注释等等。这种协作广度使 Live Share 能够用于如此多样化的用例(结对编程、合并冲突、实时站点诊断、黑客马拉松、教育等),并代表了屏幕共享的可行替代方案。事实上,如果你想知道在 Live Share 会话期间 Visual Studio Code 的哪些部分是与来宾共享的,以下屏幕截图应该有助于说明这一点(提示:它是一切🚀)。

端到端

开箱即用的 Live Share 增强了 Visual Studio Code 的各项功能,使其具备强大的协作能力,同时允许每个人保留各自的个性化环境(例如主题、按键绑定)。这样,无论开发者是单独工作还是协作开发,都可以利用他们喜爱的工作流程和 IDE 配置。唯一的区别在于您是否点击了“共享”按钮 👩‍💻

虽然 Visual Studio Code 本身就提供了一系列强大的功能(例如集成调试、版本控制),但它最大的优势之一在于其第三方扩展生态系统,其中许多扩展对于开发者的工作流程至关重要(例如GitLensLive Server)。因此,Live Share 无法真正实现其端到端协作的承诺,除非它提供一种机制,使扩展也能协同工作,并将其独特的功能贡献给用户体验。因此,我们别无选择,只能构建一个Live Share SDK🔥

合作生态系统

从高层次来看,Live Share 的工作原理是建立一个端到端 (E2E) 加密的点对点网络,然后使用一组内置的RPC 服务公开来自“主机”的远程操作(例如,转到定义、单步执行调试器),并在参与者之间实时同步编辑器状态(例如,文本编辑、光标位置、终端输出)。Live Share 附带了足够的服务,使核心 Visual Studio Code 体验能够完全协作(例如,调试、编辑、终端),但借助Live Share SDK,它还允许扩展程序贡献自定义服务,然后这些服务可以在同一安全通道上交换消息。此外,Live Share SDK 还允许扩展程序为其“会话详细信息”视图贡献自定义 UI,从而支持改进的可发现性并与核心 Live Share 功能集实现原生集成。

柜台

通过自定义 Live Share 服务公开的示例协作计数器

这样,Live Share 既可以作为一款您可以使用的产品,也可以作为您可以扩展的开发人员协作平台,从而实现一些非常有吸引力的场景!例如:

  • GitLens为“访客”开放了 Live Share 服务,以便他们远程浏览项目的 Git 提交历史记录,就像在本地一样(示例

  • 测试资源管理器公开了一项服务,用于查看和执行单元测试,并同步其通过/失败状态

  • 浏览器预览公开了一项用于协作浏览网页以及同步鼠标和键盘输入的服务。此外,它还在 Live Share 树形视图中添加了“共享浏览器”的概念(示例

  • 团队聊天公开了一项用于发送和接收文本聊天消息的服务。此外,它还在 Live Share 树形视图中添加了一个“聊天频道”入口点(示例

  • 白板公开了协作绘图、同步形状和编辑操作(例如撤消、更改背景颜色)的服务(示例

  • Pomodoro公开了一项协作计时器服务,用于同步停止和启动计时器。计时器本身在 Live Share 树视图中显示为一个节点(示例)。

这些集成功能不仅能让 Live Share 本身保持精简,还能通过扩展程序为其增添全新有趣的“点亮”体验(例如浏览文档、白板、协作式 TDD)。此外,它还能让我们与社区合作,探索开发者协作如何随着时间的推移不断发展和成熟。

除了构建自定义服务外,扩展程序还可以订阅 Live Share 特定事件,并在最终用户处于协作会话中时增强其行为。这样,Live Share 就代表了一种可供扩展程序使用的“模式”,从而使协作成为您工作方式的一个基本维度。例如:

  • Peacock允许您在主持 Live Share 会话时指定自定义工作台颜色,以便清晰地显示您正在共享的内容

  • Live Server检测到您处于 Live Share 会话中,并自动与来宾共享其 HTTP 服务器(示例

  • Code Time会自动跟踪与他人协作所花费的时间,并将其作为总体时间报告中的关键指标(示例

  • 配置文件切换器允许您为 Live Share 设置自定义配置文件,以便您可以轻松关闭您的配对可能不喜欢的设置(例如保存时的格式)(示例

实时分享一切

您可以随时访问Awesome Live Share GitHub 代码库,查看增强 Live Share 功能的扩展列表,并留意自述文件中带有“已启用 Live Share”徽章的扩展。此外,您还可以在“已启用 Live Share 的扩展” Trello 板上跟踪和点赞计划中和正在进行的集成。我们还有很多工作要做,我们需要大家的反馈,以确定工作的优先级👍

徽章

真正出色的 VS Code 扩展的标志

如果您已经构建了 Visual Studio Code 扩展,并认为 Live Share 集成将使其受益,请查看SDK 文档以及简单的计数器示例,以便快速上手。此外,请联系我,讨论将扩展添加到我们的允许列表中,因为只有获得批准的扩展才能使用 Live Share RPC 通道(出于隐私和安全考虑)。我们非常高兴能够继续与社区合作,并探索让开发者协作更愉快的新方法!🙌

文章来源:https://dev.to/lostintangent/building-a-collaborative-development-platform-5c34
PREV
协作开发需要共享的 Web 浏览器
NEXT
从回调地狱到回调天堂 问题 实验 真实案例 结论