摘要:全球最快的编辑器,可以说把编辑器玩出了新高度!有些公司喜欢在办公室贴标语,有些公司喜欢开会画流程。
真的假的!Coding编辑器已经可以演变成一家公司全员在用的Office了!
全球最快的编辑器,可以说把编辑器玩出了新高度!有些公司喜欢在办公室贴标语,有些公司喜欢开会画流程。
Zed 团队的办公方式别具一格:
所有人,每周一中午十二点,直接一起走进 Zed。
注意,不是走进某个会议室,是走进一份真实、可编辑的文档。
我们每周一在Zed举行的“全体员工”会议
Nathan 刚结束本周的公告,Morgan 正在讲指标趋势。我在一旁整理过去一周用户给我们的反馈,其他同事在补充讨论议题。与此同时,一堆光标在同一个文档里跳来跳去,屏幕不断被共享,语音随时插入又自然退场。
而这一切——会议、记录、讨论、协同写作——全都发生在 Zed 里。
这就是Zed每周惯例的 all-hands,一群工程师在同一张“数字办公桌”上一起动手、一起聊天、一起敲键盘。
想展示功能?直接在 Zed 里共享屏幕。想说一句补充?插一条 note。想切到 Chrome?系统自动帮你切到屏幕共享,再切回来。
二三十个光标同步闪烁,谁在更新本周计划,谁在补数据曲线,谁在提讨论议题,在一个 Zed 编辑器里一目了然。
没有 Zoom,没有 Slack,没有 Google Docs。整家公司就在编辑器里办公。
震惊的是,这已经不是什么实验性玩法,早已成为了 Zed 团队每天的真实日常。
一个功能很常见的编程IDE,变成一个全公司的办公协作软件?
到底怎么做到的?小编这就带大家看一下其中的奥秘。
先科普下:Zed 的发起人是大名鼎鼎的 Atom原作者 Nathan Sobo。离开 Atom 团队后,他着手创立 Zed,目标是打造一款性能更高、协作更流畅的编辑器,底层用 Rust 构建。(现在Atom已经成为了历史了,Github已经停止了支持。)
你可能会说,Coding 编辑器有协作功能,这并不新鲜。但问题就在这里。
据一名 Zed 的工程师在博客上爆料了这家公司刻在基因里的执念。
Zed 的协作能力,一开始就跟其他家不同。压根就不是“要做一个功能”,而是当成了一种执念:
远程协作必须顺滑到像两个人坐在同一张桌子上打字。
对于这种执念的来源,来自于创始人的情有独钟。
Zed 创始人 Nathan 最早在 Pivotal Labs 做 pair programming 时,体验过那种“我敲一句、你立刻接下一句”的快感。但远程工具始终给不了这种感觉。
后来在 Atom 上做了 Teletype,虽然能协作,但体验仍然被性能限制在天花板下。
要做真正自然的协作,靠插件不行,一定要从底层重来。
于是有了 Rust,有了 gpui,有了 Zed。
这是 Zed 可以做到的原因:整个团队从最开始就追求协作的极度流畅。
“我们从零开始设计 Zed,使其具有协作性——它不是一项附加服务,也不是事后考虑的产物。”
你可能也体验过 ——现在几乎所有编辑器都号称支持多人协作,但用起来往往是这样:
先找插件、再贴链接、再装扩展、再对权限
两三个人编辑还好,四五个人就开始卡
最后大家还是老老实实地默默打开 Zoom,开启屏幕共享
你看,协作功能“存在”,但没有人愿意天天用。它不自然、不顺、不敢依赖。
设置过程繁琐不堪,令人厌烦;每次想要分享内容,通常都需要安装扩展程序,并将链接粘贴到终端或编辑器中。多人同时编辑的内容无法完美合并,随着协作人数的增加,性能会迅速下降;最糟糕的是,你最终往往还是得通过 Slack 或 Zoom 来共享屏幕。
而 Zed 的目标很简单:让协作成为你默认的工作方式。先来看看这个虚拟办公室究竟什么样子?
合作概述
1.点击状态栏中的人员图标即可打开协作面板,并且在通过 GitHub 身份验证流程登录后即可访问。
2.该区域包含称为“频道”的虚拟房间,这些房间按层级结构组织。
3.点击按钮即可创建顶级频道+。右键单击现有频道并选择相应New Subchannel选项,即可创建嵌套子频道。
4.GitHub头像显示了用户所在的频道。点击频道名称即可加入。
5.点击文档图标即可访问其“频道备注”,该备注作为与频道关联的元数据。
6.进入频道后,通过麦克风图标静音/取消静音。
7.允许他人查看您的屏幕。
8.频道与项目无关。项目可通过标题栏中的按钮自愿分享到频道。频道可以是公开的或仅限特定成员访问的(#️⃣),并包含权限系统,包括、和角色。
9.点击标题栏中的头像即可关注队友。如果您关注的队友正在共享屏幕,Zed 会自动在您的 Zed 实例中跟随他们的光标,或跟随他们的屏幕共享,具体取决于他们当前是专注于 Zed 还是其他应用程序。
光有执念还不够,Zed 底层采用了特别好的数据结构:CRDT(无冲突复制数据类型),来保证多人协作服务中卡顿、中断、频繁移动光标的问题。
我们以CRDT作为核心数据结构,确保属性无冲突且最终一致,所有人的更改都能无缝合并并最终收敛到同一状态。
每一个人的编辑都能自然合并,不抢光标、不冲突、不反复回退。
同时,该架构提供低延迟,无论同事身处同一办公室还是远隔重洋,都能保持流畅的性能,无论是结对编程还是群体编程。
更关键的是——你进入协作状态根本不需要准备:
GitHub 登录即进入频道就是会议室语音、跟随、屏幕共享都内置你切到浏览器?它自动切到你的屏幕给别人看你回到编辑器?视图自动切回来跟随你的光标你甚至会忘记自己正在“多人协作”。而内部人员则解释道,这绝对不是为了宣传,因为自己办公的确需要够丝滑。
我们这么做不是为了“宣传亮点”。是因为整家公司每天都靠这个办公,不顺畅根本没人受得了。
打开 Zed 左侧的协作面板,原来大家习惯的“文件树”,变身成了一家正在运转的公司,准确说是一家公司的各个频道树。
内部人员透露,每一个小的协作小组都有自己的虚拟办公室,并表示每一个协作小组的频道树都是公司 Zed Industries 频道树的一小部分。
随着公司的发展,Zed 的频道树结构经历了多次迭代,但如今的结构足够灵活,可以适应多种协作方式。
频道树结构用于:全公司级的讨论、参与项目、个人专注频道。
这些,都没有 PPT,没有主持稿,一切真实发生在文档里。
此外,这个下面设有一些通用会议室,用于不适合其他地方且不需要专用空间的临时会议。
这是围绕特定项目构建频道和团队,大部分协作都在这里进行。项目通常会整合大型计划所需的多个功能,比如:Git 1.0、Edit Predictions v2、DeltaDB、Cloud……
每个项目都有自己的频道树,里面放着:
本阶段目标任务状态GitHub issues 和 project board讨论记录分频道(比如专门讨论 merge conflict UI)走进频道,就像进入一间带白板、带任务墙、带历史记录的战情室。
每一次项目加速推进,基本都发生在这里。
git 1.0 频道及其子频道
值得注意的是,内部人员介绍,并非所有基于项目的频道都专注于正在添加到 Zed 的功能;许多频道的存在是为了支持非开发工作,例如市场营销、社区和指标。
在 people 频道下,每个人都为自己建了一个小房间。
我们的人员频道
谁在自己频道里,通常意味着 TA 正在深度工作;但你如果有问题,也能直接“走进去”问一句。
这篇博客的初稿,就是在作者自己的 blog 子频道里写出来的。
细心的观察者可能会注意到,在上面的截图中,这些频道旁边没有头像。这些频道空着并不罕见,因为团队通常更喜欢尽可能地进行协作!
Zed 给每个人的不是“自由”或“约束”,而是一个非常现实的设定:你可以专注,但你也处在一个真实团队里。
整体看下来,Zed 这套虚拟办公室可以说相当成熟了,堪比承担了实体办公室的工作。
开辟了三级空间用于集体协作,又构建了信息流树,以支持公司高效运营的工作流程。更关键的是,人员可以根据团队的实际需求进行灵活调整。
据悉,Zed 现在的协作仍是 alpha 版,但团队已经能用它运营整家公司。
信息天然串联,不需要翻 Slack讨论直接发生在代码附近,不跳场景项目进展透明多人一起写代码变成默认方式统统可以放在一个编辑器中完成。那么,下一步会是什么呢?
Zed团队的计划是:将未来的开发改造成持续流动的对话流。
未来的开发不应该是一次次孤立的“代码提交”,而是一条持续流动的对话流。
每一次讨论、编辑和见解都将与不断演进的代码保持关联,团队成员和 AI 代理都可以访问这些内容。
近年来,Zed在开发者群体中呼声大涨。看完今天它的理念和实际效果,小编愈发感觉一款革命式的编辑器即将诞生了。
打造革命性的产品需要耐心的打磨,不是一蹴而就的。Zed也是如此。
“过去几年我们不得不停下协作开发,先补调试器、补 Windows、补 Git、补 AI。但现在基础铺好了,我们要回到最初的愿景:打造全球最强的多人软件开发工具。”
当然,优秀的产品,往往都是开源免费的。(已经69.7k stars了!)这里为大家奉上地址。
Github地址:https://github.com/zed-industries/zed/tree/main/crates/collab
大家甚至可以随时走进Zed那棵频道树里,去参观内部团队是“怎样在 Zed 里构建 Zed”的。
Zed,不愧是一款面向未来的理想编辑器,不,理想的Office!
参考链接:https://zed.dev/blog/zed-is-our-office
来源:51CTO一点号
