多人协同编辑一直是我们 PingCode Wiki 不太敢触碰的一个功能,因为技术实现上有挑战。但协同编辑技术本身已经发展多年,解决方案已经相对成熟,我们团队也是在刚刚结束的 Q3 里完成了基于 PingCode Wiki 编辑器协同编辑的方案落地,所以这里想结合我们的技术选型及落地实践经验谈谈我对这块技术的理解。 主要内容以协同编辑技术为主,中间也会谈谈对技术发展演进的理解。 一个场景 -------- 一个常见的场景,页面发布冲突,这个交互在我们产品中真实存在过 两个用户基于相同的文章内容进行了修改,一个用户先发布,后一个用户在发布的时候就会有这样的提醒,虽然有提示,这其实对用户来说是不友好的。 通常产品的解决方案有以下三种: 1\. 悲观锁 一个文档只能同时有一个用户在编辑 2\. 内容自动合并、冲突处理 3\. 协同编辑 第二种方案也有国外产品在做就是 Gitbook ![](https://static.de