因为随着使用你 SDK 的用户越来越多,可能会发现各种各样莫名其妙的问题;而且 SDK 作为相对底层的依赖,对使用方的影响也是无法估量的。所以,不想经常加班改 Bug 的话,就要保证你 SDK 的稳定性。
我们需要注意以下几点:
1. 测试为了保证每个功能都是正常的,我们可以编写 单元测试(UT)来最大程度上地覆盖 SDK 的功能和代码。
尤其是每次改动代码后、发布新版本之前,都要再完整地执行一遍测试,不要盲目自信。
此外,还可以通过 压力测试 来估算 SDK 的执行效率,比如每秒最多同时执行 3 次、每次要执行 500 毫秒等。建议将这些信息补充到说明文档中,给用户一些预期。当然也可以尝试通过压测来优化 SDK 的性能。
2. 兼容性重要的函数和接口尽量减少改动,尤其是函数名、入参和返回值!
举个例子,SDK 0.1 版本时,函数的定义是这样的:
boolean isValid(String str)结果突然在 0.2 版本时改成了:
String checkValid(StringBuilder str)这样就会导致用户升级时一脸懵逼,怎么报了一堆找不到函数呢?
因此,对于比较大的改动,可以新写一个函数,并且给老函数打上类似 @Deprecated 的注释,表示已过时,引导用户去用新的。
此外,还可以在 版本号 上做做文章,小改动时只改变小版本号,比如 0.0.1 到 0.0.2;大改动时才改变大版本号,比如 1.0 到 2.0。这样可以给用户一个预期:这次改动很大,可能会存在不兼容。
3. 暴露异常要让用户感知到 SDK 代码中可能抛出的异常,交给他们去进行相应的处理,防止出现一些意料之外的错误。
此外,SDK 要合理地打印日志,尤其是异常日志,在出了问题时要让调用者知道是出了什么问题,便于排查。
以上就是本期分享,建议学编程的同学多自己动手写 SDK,并且按照本文的总结去优化它,对提升编程能力真的很有帮助!
最近整理了我原创的 140 篇编程经验和技术文章,欢迎大家阅读,一起成长!⛽️
指路:https://t.1yb.co/ARnD
我是鱼皮,最后求个 点赞 ,这将是我持续创作的最大动力,谢谢