追求愉快的开发者协作
对于任何成功的开发团队来说,协作都至关重要。这是一个毫无争议的观点,也并非新鲜事。无论您是在指导他人、提供代码审查、帮助解决棘手的 bug,还是只是进行定期的结对开发,鼓励持续的知识传递(全方位!),并支持共享所有权和团队凝聚力的文化都至关重要。话虽如此,现在已经有很多 工具和流程可以帮助开发人员协作,那么为什么还要再创建一个呢?
在着手构建Visual Studio Live Share时,我们了解到团队协作的方式多种多样,对于如何最有效地开展协作,他们有着独特而深刻的见解(例如协作频率、会话时长、是临时协作还是定期协作)。我们并非要求团队改变现有的工作方式,而是希望对其进行补充。具体而言,我们发现了一些方法,可以让开发人员的协作变得更愉快,并最终提高效率,无论您的团队是完全远程办公、部分分布式协作还是完全同地协作。让我们看看我的意思!
共享上下文,而不是屏幕
作为开发者,我们花费了无数的时间来定制我们的环境,使其更加符合人体工程学,视觉效果也更具吸引力。从操作系统偏好设置、默认 Shell、编辑器主题、按键绑定、窗口布局到字体大小,一切都是为了打造一种“恰到好处”的体验。因此,为了实现像协作这样基本的事情而牺牲(或强加😊)这些个性化设置,似乎……有点愚蠢。
借助 Live Share,参与者可以实时协作编辑和调试共享代码库,同时保留各自的计算机设置(Visual Studio 或 Visual Studio Code 均可)。您喜欢浅色主题,而团队中的其他人则喜欢深色主题?太棒了!您的搭档是否使用 Vim 快捷键,而您……宁愿不使用?没问题!您是否喜欢将文件资源管理器对齐到 IDE 的右侧、增大字体大小、隐藏状态栏、渲染空白和/或显示小地图(以及许多其他设置)?那就继续这样做吧!让团队的其他成员也保留他们的所有偏好设置。人人受益👍
这种体验之所以有效,是因为 Live Share 只是同步项目上下文(例如文件、编辑、调试状态、本地服务器)和用户位置(例如光标、高亮显示),其他所有内容均保持不变。协作会话中的每位“访客”都利用了共享内容的开发人员的运行时环境,但却以自己的视角进行观察。乍一看,这似乎是一个微妙的优势,但当协作每天或每周进行时,它很快就会产生巨大的效益。
除了分离屏幕之外,Live Share 还允许会话中的每个人使用完全不同的键盘布局,这对于地理分布的团队至关重要。因此,您可以让开发人员使用QWERTZ、QWERTY和/或AZERTY键盘组合进行协作,并且每个人都可以自由编辑,而不会出现任何意外行为。这是因为每个人实际上都在本地编辑(与屏幕共享不同),这使得他们的按键在与团队同步之前得到正确处理。
本地编辑的另一个关键优势是,您不会遇到任何与屏幕共享相关的延迟。由于编辑是我们执行的对延迟最敏感的操作,因此拥有针对此进行优化的协作工具对于提高生产力和长期满意度至关重要。
合作,但思维不同
两个(或更多!)人往往胜过一个人,因为多元化的视角有助于更快地分解问题,并产生更好的结果(例如,减少“巧妙”的抽象)。通过共享屏幕/投影仪进行协作的好处是可以让每个人都专注于同一件事(例如,方法的实现),但它也有一个潜在的缺点:它限制了参与者探索独立想法的能力,并且不会干扰整个团队。即使你使用支持多光标的解决方案,每个人仍然基本上被锁定在同一个屏幕上,因此,他们独立思考或按照自己的节奏思考的能力受到限制。
通过 Live Share,参与者可以在共享的代码库和运行时环境中进行协作,同时能够在专注于同一工作和独立工作之间无缝切换。此外,Live Share 甚至支持混合模式,您可以临时编辑单独的文件(或同一文件的不同部分),同时继续观察彼此的工作。
无论您是想并行执行任务(例如,您编写测试,您的搭档编写相关代码),在调试时查看不同的堆栈帧,还是仅仅查看一个您不熟悉的方法的定义,Live Share 都能实现一种非序列化的协作方式。您可以选择齐心协力、分而治之,还是两者兼而有之。哪种模式最有效取决于您和您的团队,而 Live Share 正是实现这一目标的利器👍
查看此帖子了解有关多模式协作的更多详细信息。
以代码为中心的通信
市面上有很多优秀的聊天工具,而 Live Share 正是为补充您和您的团队正在使用的聊天工具而构建的。然而,这些工具大多是为了方便电话会议和演示而设计的,而不是为了实现高效的代码讨论。因此,虽然它们在让整个组织保持联系方面表现出色,但它们并没有提供针对无干扰的开发者“流程”进行优化的体验。
使用 Live Share,您可以轻松共享当前工作区,并使用集成的文本和语音支持与访客聊天。无需协调使用单独的服务,也无需在不同应用之间切换上下文。只需留在编辑器中,即可根据需要进行沟通和协作!
此外,在协作过程中,您或其他人可能会对特定代码段有疑问。为了更轻松地讨论代码,Live Share 允许您点击共享项目中的任意一行,并为其添加丰富的 Markdown 注释。这样,您就可以在各个细节层面进行有效沟通,而无需解释或重新创建编辑器已提供的上下文。
查看此文章以了解有关 Live Share 集成通信支持的更多详细信息。
实时编辑,超越一切!
开发者经常将 Visual Studio Live Share 比作“代码版 Google Docs”,这不难理解,因为它提供了实时协作编辑体验,并支持共享光标和高亮显示。然而,为了实现开发者协作,使其能够从最简单的情况(例如快速代码审查)扩展到最复杂的情况(例如,对站点事件进行集体调试),我们发现,我们需要支持远不止文件和编辑的协作环境。我们需要实现真正的端到端协作,并且不需要开发者为了推进协作会话而转向其他工具或服务。
使用 Live Share,开发人员可以先共享整个项目上下文(只需点击Live Share
按钮!)。这使参与者可以访问整个代码库,而无需来回交换代码片段(这是一种痛苦的协作方式!)。从这里开始,您可以根据需要共享尽可能多的内容,以满足特定协作会话的需求。这样,简单的情况就变得简单,复杂的情况也……变得简单。请允许我通过一系列推文来说明这一点:
- 来宾是否需要查看正在运行的 Web 应用才能了解错误或验证修复?只需在您的计算机上共享 localhost 服务器,每个人都可以使用 Live Share 已建立的安全 SSH 通道立即访问它。
- 想要实时进行代码审查吗?访客可以访问Git 仓库的状态,如果您使用GitLens和/或GitHub Pull Request扩展程序,它们也可以完全共享!
- 想用视觉方式解释某个内容?那就使用协作白板,一起来画图吧。
- 想要使用预先准备好的“导览”(几乎就像开发人员优化的 PowerPoint!)来提供代码库的引导式演示吗?查看CodeTour扩展,开始分享你的知识!
- 想要确保与你合作的每个人都能获得正确的 Git 归属?Live Share 将自动生成你的提交消息尾标。
-
您是否使用番茄工作法进行时间管理,并希望在协作中继续运用它?Live Share 番茄工作法可以满足您的需求👍
-
需要一起浏览文档,例如查找代码示例或跟随教程?立即获取浏览器预览扩展程序,开始协作浏览。
而这仅仅是冰山一角。Live Share 不仅自带一系列开箱即用的功能,还具备完全的可扩展性,并且在其协作平台之上构建了一个不断发展的扩展生态系统(例如时间跟踪、共享测试运行器)。我们一直在寻找新的机会来吸引社区参与,因为这是维持协作体验以适应“现代”开发这一不断变化的目标的唯一途径。
查看此文章以了解有关 Live Share 的可扩展性和生态系统的更多详细信息。
我们才刚刚开始
总而言之:Visual Studio Live Share使开发人员能够实时协作,使用他们自己的个性化环境,共同工作或完全独立工作,同时能够共享整个项目上下文(天哪,你甚至可以用白板!)。我们发现,这种体验的结合可以实现一种非常有效的协作形式,并且实际上可以减轻一些开发人员在使用传统工具和流程时遇到的挫败感。
话虽如此,我们才刚刚起步,因此我们期待继续学习更多关于开发者协作的知识,特别是如何为打造更愉悦的体验做出贡献。考虑到协作的重要性,这似乎是一项非常值得的追求。
鏂囩珷鏉ユ簮锛�https://dev.to/lostintangent/visual-studio-live-share-in-pursuit-of-enjoyable-developer-collaboration-2nko