在旧金山举办的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。除此之外,还可以通过在命令行运行
来安装Teletype。
- apm install teletype
来源: http://www.tuicool.com/articles/zYVJNji