@kookapp/compatibility
v0.0.15
Published
Compatibility package
Keywords
Readme
Changelog
0.0.1
初始版本,新增 ItemStore 兼容层。
Compatibility
当本体引入破坏性改变时,如删除了某个导出函数,则所有热更包都总需要考虑 2 种情况:
- 旧本体,只有旧实现,没有新实现;
- 新本体,只有新实现,没有旧实现;
此外:
- 本体与热更的放量不同步,谁先上或者谁后上都不行。
因此为了兼容,通常在热更代码中,会包含对新旧实现的抽象,从而避免代码太难看、总要处处照顾不同情况。
考虑到不同的热更项目代码不互通,为了统一抽象,建立了此 compatibility 包,专用于存放兼容用的抽象层。
适用范围
当以下条件满足,则应该考虑使用此包:
- 本体放量到一半
- 本体有破坏性改变,导致热更的放量必须至少覆盖新本体
不过,热更项目不应该一直依赖此包。等到对应本体全量后,就应该考虑去除对 compatibility 包的依赖了。
项目依赖
- radash
由于此包的特殊性,最好不要包含和本体相关的依赖,尤其不要反过来依赖本体。
项目迭代
兼容层在迭代的时候最好总是保持后向兼容,只做加法。
