在舊金山舉辦的2017 QCon大會上,GitHub的Nathan Sobo披露了Atom最新的實時協(xié)作插件——Teletype。Teletype的目標是讓兩名開發(fā)人員能夠像他們單獨編寫代碼一樣輕松地協(xié)作編寫代碼。
Teletype能夠讓開發(fā)人員創(chuàng)建一個新的協(xié)作會話,并通過鏈接的形式與其他同事進行共享。每個協(xié)作者都有自己的輸入光標,并且可以自由地和其他協(xié)作者一起輸入。
Sobo說,協(xié)同編輯是一個棘手的理論問題。Atom Teletype提出的解決方案是讓每個協(xié)作者修改他們自己的文檔副本。本地的編輯會立刻應(yīng)用于本地副本,之后會傳輸至其他協(xié)作者。這會導(dǎo)致不同的副本可能會以不同的順序應(yīng)用各種修改,但是Teletype應(yīng)用了conflict-free replicated data types(CRDT)算法,該算法能夠確保所有的副本最終的內(nèi)容會是一致的。
Teletype使用WebRTC來連接各個協(xié)作者,這就意味著除了最初的握手依賴于GitHub的服務(wù)器之外,所有的傳輸都是點對點的。為了確保隱私,所有的數(shù)據(jù)傳輸都是加密的,并且從不訪問GitHub服務(wù)器。
GitHub為文本編輯而開發(fā)的CRDT也可以作為獨立的庫使用,同時還提供了一個完整的獨立于編輯器的庫,它可以將同樣的功能集成到基于Web的或基于Electron的應(yīng)用程序中。
根據(jù)GitHub的說法,開發(fā)Teletype是為了解決Atom團隊自身的需求,它是全局分布式的,而且可以改善開發(fā)人員的工作流程,例如找一個新隊友,審查同事的工作,學(xué)習(xí)新技能。GitHub還設(shè)想將Teletype作為進行pull requests(PR)的一種方式:開發(fā)人員不需要提交一個PR,而是可以使用Teletype進入同一文本編輯器,實時地處理問題。
在Atom 1.22上可以通過Install面板來安裝Teletype。除此之外,還可以通過在命令行運行apm install teletype來安裝Teletype。
閱讀英文原文:Real-time Collaboration Comes to Atom