在旧金山举办的 2017 QCon 大会上,GitHub 的 Nathan Sobo 披露了 Atom 最新的实时协作插件—— Teletype 。Teletype 的目标是让两名开发人员能够像他们单独编写代码一样轻松地协作编写代码。
Teletype 能够让开发人员创建一个新的协作会话,并通过链接的形式与其他同事进行共享。每个协作者都有自己的输入光标,并且可以自由地和其他协作者一起输入。
Sobo 说,协同编辑是一个棘手的理论问题。Atom Teletype 提出的解决方案是让每个协作者修改他们自己的文档副本。本地的编辑会立刻应用于本地副本,之后会传输至其他协作者。这会导致不同的副本可能会以不同的顺序应用各种修改,但是Teletype 应用了 conflict-free replicated data types (CRDT)算法,该算法能够确保所有的副本最终的内容会是一致的。
Teletype 使用 WebRTC 来连接各个协作者,这就意味着除了最初的握手依赖于 GitHub 的服务器之外,所有的传输都是点对点的。为了确保隐私,所有的数据传输都是加密的,并且从不访问 GitHub 服务器。
GitHub 为文本编辑而开发的 CRDT 也可以作为独立的库使用,同时还提供了一个完整的独立于编辑器的库,它可以将同样的功能集成到基于Web 的或基于Electron 的应用程序中。
根据GitHub 的说法,开发Teletype 是为了解决Atom 团队自身的需求,它是全局分布式的,而且可以改善开发人员的工作流程,例如找一个新队友,审查同事的工作,学习新技能。GitHub 还设想将Teletype 作为进行pull requests(PR)的一种方式:开发人员不需要提交一个PR,而是可以使用Teletype 进入同一文本编辑器,实时地处理问题。
在Atom 1.22 上可以通过Install 面板来安装Teletype。除此之外,还可以通过在命令行运行 apm install teletype
来安装 Teletype。
评论