思考Web应用的数据流
之前做了个玩具叫做 Cumulo, 大致意思后端计算数据, 通过 Diff/Patch 发到前端, 那么前端浏览器的 Store 就不需要业务逻辑了, 从而减少开发. 然而这种做法存在天然的缺陷, 首先, 性能问题, 其次, 持久化问题. 其实都可以归结为性能, 要性能, 就必须做增量, 那么整个架构就崩溃了. 这篇文章尝试描述一下稍微正常一点的, 基于数据流来设计架构的一个构想. 由于后端开发经验的欠缺, 我并不打算给出可行的方案. 在开始之前, 先回顾一下实时 Web 应用的架构设计. 首先在前端 Model-View 分离是第一步, 以便解放 View 的开发效率. 这时的数据流, Model 的数据发送到 View, 而 View 的更新操作回到 Model. (这里的 Model 接近 Store, 并不是单纯数据, 而是包含更新逻辑): 接着, 把 Server 重新放回来, 大致就到了 Cumulo 的情况, 这时的数据流, 数据直接发送到服务端, 前端 Model 同步服务端, 最后再回到 View, 这时 Model 就成为一个中间过程了: 那么结合上边两张图, 把这...