热更新架构

这是一个团队内部的分享,介绍了热更新/热插拔的优点以及所需的成本。主要通过分析 Node.js 和 Webpack 的热更新机制,总结出实现热更新/热插拔架构需要这些特性

  1. 组件系统,组件作为热更新的最小单位
  2. 管理热更新的运行时程序,用于检测更新,加载新组件,替换和释放旧组件
  3. 元编程的能力,允许程序对自身进行修改

要实现可热更新的组件系统,需要这些特性

  1. 在组件栈中,上层组件的热更新需要下层组件的热更新支持
  2. 组件需要有“纯”或“无状态”或“副作用可撤销”的特性
  3. 合理的组件编排模型(怎样才算合理?没有深入讨论)

hotswapping.pdf