想知道常見的即時協作軟體,如 Google Docs、Trello 或是 Figma,是用什麼樣的演算法實作多人同時編輯的嗎?這篇先存起來就對了!
協作軟體的實作方式主要分成兩種:Operational Transformation (OT) 跟 Conflict-free Replicated Data Types (CRDTs)
比較早期的軟體 (1989 ~ 2006) 是使用 OT 實作的,Google Docs 就是知名的例子,2006 以後則是使用 CRDTs,做設計師跟軟體工程師協作軟體的獨角獸 Figma 就是使用 CRDTs, Figma 也在這篇文章介紹了他們是怎麼實現多人實作的,值得一讀! https://www.figma.com/blog/how-figmas-multiplayer-technology-works/
至於為什麼要用 CRDTs 取代 OT 呢?OT 的演算法主要的處理都是在伺服器端,也就是你跟你朋友如果坐在一起,開兩台電腦編輯同一份文件的話,還是得送到遠端的伺服器來處理解決 Conflict,如果這個伺服器離你們的位置很遠的話,或是同時編輯的人數很多,這個方式的效能會不夠好;CRDTs 則是可以做到用戶跟用戶之間直接傳送 Update,並且確保只要兩個人看到一樣的 Set of Updates,即便順序不一樣,文件最終的結果也會長一樣,但實作上也會遇到很多困難跟不同的情境要處理,有興趣的人可以看完整影片!
#肯吉唧唧
P.S. 講者是我們之前提過的系統設計聖經 - DDIA 的作者 - Martin Kleppmann
https://martin.kleppmann.com/2020/07/06/crdt-hard-parts-hydra.html
「trello updates」的推薦目錄:
- 關於trello updates 在 矽谷輕鬆談 Just Kidding Tech Facebook 的最佳貼文
- 關於trello updates 在 Squad - TRELLO UPDATE: We have updated our roadmap to... 的評價
- 關於trello updates 在 Create a Status Update Page with Trello - YouTube 的評價
- 關於trello updates 在 Making a template card in Trello that will automatically update ... 的評價
- 關於trello updates 在 Trello api to update description section? - Stack Overflow 的評價
- 關於trello updates 在 trello-board · GitHub Topics 的評價
- 關於trello updates 在 The Ultimate Manual for Trello-GitHub Integration - Nira 的評價
trello updates 在 Create a Status Update Page with Trello - YouTube 的推薦與評價
![影片讀取中](/images/youtube.png)
If you want to keep everyone posted on an event (in your personal life or work!) do it with Trello ! You can create one card for each "post", ... ... <看更多>
trello updates 在 Making a template card in Trello that will automatically update ... 的推薦與評價
You should take a look at @cardsync, a Trello bot that I wrote that does exactly this: keeps cards in sync. From the bot's own description:. ... <看更多>
trello updates 在 Squad - TRELLO UPDATE: We have updated our roadmap to... 的推薦與評價
TRELLO UPDATE : We have updated our roadmap to reflect the recent changes and releases. We have also adjusted the Beta 22 release date to September 2nd,... ... <看更多>