架构中难啃骨头。如难被独立分成模块,就是全局性功能
保持核心系统的纯洁性比什么都重要,最小化,要稳定
一、读盘 / 存盘功能
Office为例子,增加功能
读盘 / 存盘:,要考虑如何存、恢复
Undo/Redo:增加功能,要考虑如何回滚 / 重做,很难剥离。
引入 IO DOM 来进行正交分解,关键点:
1、“读盘 / 存盘” 独立成子系统,叫 IO 子系统
2)抽象出它对核心系统稳定依赖.为什么这个稳定依赖最后设计为 IO DOM,是因为 DOM 是核心系统的常规界面
3)让全局性功能反向依赖接口来完成。核心系统伤害值最低。
二、Undo/Redo 功能
Command 模式,解决 Undo/Redo 场景。每个用户操作都实现为一个 Command,Command 反操作,实现Undo 的能力
实际只节省了 1% 的工作量。其余 99% 工作量在实现一个个 Command 身上
三、快速存盘
只追加到文档的尾部。并不完整的文档写到磁盘,只读最新版本即可
有镜像能力,Undo/Redo 能力
缺点,不能异步存盘
https://ai.nodejs7.com/2019/12/24/41.html
网友评论