Skip to content
目录

关键设计决策和原因

决策表归纳;细节见各章,不贴源码。


1. 插件架构

原因选择
表格/文档/幻灯片功能差异大核心薄 + 插件组合
按需加载未注册插件不占用

2. 逻辑 / UI 插件分离

原因选择
Node、Worker、测试逻辑可无头运行
包体积服务端不引 UI 包

3. 命令模式

原因选择
Undo、协同、审计统一 MUTATION
业务组合COMMAND 编排

4. Snapshot

原因选择
保存、加载、协同基准点全量快照 + 增量 revision
可读可迁JSON 友好结构

5. Canvas 而非 DOM 表格

原因选择
十万级单元格DOM 节点过多
绘制控制合并格、缩放、打印一致

6. 依赖注入 (redi)

原因选择
插件解耦接口 + 实现可替换
测试Mock Service

7. 公式引擎独立

原因选择
CPU 密集Worker、可单独升级
与 UI 解耦服务端批算

8. Facade API

原因选择
降低上手成本封装 Command 细节
稳定对外契约内部可重构

9. 拦截器

原因选择
扩展不改核心权限、日志、协同过滤

10. 稀疏存储 + 增量渲染

原因选择
内存与帧率空单元格不占对象、脏区重绘

总结

Univer 的主轴:插件扩展 + MUTATION 单一写入口 + Snapshot 协同 + Canvas 性能

MIT License.