持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
我们要设计一个web sdk,都要做哪些事情。我们以一个b端系统的核心sdk设计为例。
首先,我们要知道我们的sdk需要考虑哪些问题:
- b端通用api
- 开发功能,希望有一些开发相关的工具
- 通用api依赖的基础能力
- 适配层相关api
- 是否考虑,实现业务插槽
- sdk谁与业务相关的,如果是与业务相关的,多个sdk,那么sdk膨胀的维护问题如何解决
- 即然业务相关,那么版本问题如何解决,版本问题包含两方面,一个是是否需要统一版本;另外一个现有项目多版本的现状如何去解决
我们看一下这样问题分别怎么解决:
- 就是对常用的能力进行抽象
- 我们针对一些好的开发模式进行固化,能帮助我们提高开发的效率
- 对基础能力进行封装及固化,这样我们产出多套上层封装,就可以对公共的内容进行复用
- 适配层存在意义是底层无法做所有的脏活累活,需要有一层去帮助大家处理这些脏活累活
- 业务插槽有好处有不好的地方,好处不用说,坏处就是很难预料哪些地方可能会需要扩展,需要什么样的扩展
- 如果多个sdk有膨胀问题,那么还是建议sdk搞成跟业务无关的,业务侧去维护一个跟业务相关的独立的组件库即可
- 参考6
解决了这些问题,我们还需要对暴露的api进行详细的设计。我们最好参考一下社区的最佳实践,这种产出一个全局变量,所做的一切都是为了这个变量去服务。感觉这种方式其实有点反潮流,但是适合业务的,就是最好的。