web sdk设计

348 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

我们要设计一个web sdk,都要做哪些事情。我们以一个b端系统的核心sdk设计为例。

首先,我们要知道我们的sdk需要考虑哪些问题:

  1. b端通用api
  2. 开发功能,希望有一些开发相关的工具
  3. 通用api依赖的基础能力
  4. 适配层相关api
  5. 是否考虑,实现业务插槽
  6. sdk谁与业务相关的,如果是与业务相关的,多个sdk,那么sdk膨胀的维护问题如何解决
  7. 即然业务相关,那么版本问题如何解决,版本问题包含两方面,一个是是否需要统一版本;另外一个现有项目多版本的现状如何去解决

我们看一下这样问题分别怎么解决:

  1. 就是对常用的能力进行抽象
  2. 我们针对一些好的开发模式进行固化,能帮助我们提高开发的效率
  3. 对基础能力进行封装及固化,这样我们产出多套上层封装,就可以对公共的内容进行复用
  4. 适配层存在意义是底层无法做所有的脏活累活,需要有一层去帮助大家处理这些脏活累活
  5. 业务插槽有好处有不好的地方,好处不用说,坏处就是很难预料哪些地方可能会需要扩展,需要什么样的扩展
  6. 如果多个sdk有膨胀问题,那么还是建议sdk搞成跟业务无关的,业务侧去维护一个跟业务相关的独立的组件库即可
  7. 参考6

解决了这些问题,我们还需要对暴露的api进行详细的设计。我们最好参考一下社区的最佳实践,这种产出一个全局变量,所做的一切都是为了这个变量去服务。感觉这种方式其实有点反潮流,但是适合业务的,就是最好的。