申请试用
HOT
登录
注册
 
Archmeetup#9 深圳站 - 实现实时协同算法的核心技术
Milvus.io
/
发布于
/
24
人观看

5081634527787_.pic_hd.jpg

展开查看详情

1 .实现实时协同算法的核心技术 刘伟 ShowMeBug技术经理

2 .演讲顺序 ▸ (what)什么是实时协同的在线编程 ▸ (why)实时协同编程的价值在哪里 ▸ (how)协同编程在 ShowMeBug 中的实践

3 .关于实时协同 所有高价值的产品都是因为高效 ▸ 实时办公协同:Google Docs、WPS 云文档、quip、notion… ▸ 实时项目协同:Tower、Trello、Tita… ▸ 共通问题 CAP:可用、容错、一致(最终一致)

4 .实时协同的在线编程的几个特点 ▸ 多人同时在线 ▸ 共同编程 ▸ 零冲突的处理 ▸ 不稳定网络零容忍度

5 .实时协同编程的价值 ▸ 在线代码面试 ▸ 代码评审交流 ▸ 远程结对编程 ▸ 在线培训学习

6 .看看成品的表现 ▸ ShowMeBug 协同编程 ▸ ShomMeBug 协同绘图

7 .

8 .

9 .成品的表现 ▸ 代码实时同步 ▸ 零冲突率 ▸ 32 种语法高亮与运行结果同步 ▸ vim、emacs 支持 ▸ 光标同步、同步行数指示

10 .ShowMeBug 协同的几个核心技术点实践?

11 .协同编程实现的核心技术 websocket 篇 ▸ ActionCable 6.0 ▸ 优点 ▸ 超级易用的 Ruby Rails 生态 websocket 方案 ▸ 缺点 ▸ 数据可靠性保证(断线后数据重传)

12 .协同编程实现的核心技术 IDE 篇 ▸ CodeMirror、ACE、Monaco Editor ▸ 浏览器中实现编程环境的组件 ▸ API 丰富,超高扩展性 ▸ 方便定制扩展(比如 LSP 补全)

13 .关于协同算法,ShowMeBug 的几个迭代阶段?

14 .协同编程实现的初级阶段 ▸ 单工单向 ▸ 互斥锁(编辑锁) ▸ 全量上传 => 产品 Demo 的快速验证

15 .协同编程实现的中级阶段 ▸ 基于 diff 的增量上传 ▸ 互斥锁 ▸ 全量解析 ▸ Myer 算法

16 .协同编程实现的高级阶段 ▸ 自定义协议的 OT 算法 ▸ 同步锁(自旋锁) ▸ 语言切换同步 ▸ 代码运行同步 ▸ 面试记录同步 ▸ 录制回放

17 .什么是 OT算法?

18 .协同编程实现的核心:操作转换算法 ▸ 自动解决冲突 ▸ 所有需要同步的操作转化为以下三类 ▸ Insert 插入 ▸ Retain 保留 ▸ Delete 删除 ▸ 例如一段代码 “abc” ,用户一把代码改为 “xabc”,用户二把代码改为 “ab”,过程如下:

19 .

20 . 协同编程实现的核心:OT转换 http://operational-transformation.github.io/

21 .协同编程实现的核心:三方交互架构图

22 .OT 算法实践中的难点?

23 .协同编程实现的关键难点 ▸ OT 转换算法实现 ▸ 网络不稳定时,重传、去重 ▸ 锁的实现(协同转换顺序)

24 .协议 / 数据模型是关键

25 .核心协议解读

26 .协同编程实现的核心实现:排队锁

27 .协同编程实现的核心实现:转换操作

28 .编辑器之外的同步怎么做?

29 .协同编程实现的核心实现:ActionCable Channel

0 点赞
0 收藏
0下载