SDK 开发规范 & 经验总结
开发规范
1. 开发规范
- API功能单一,减少类似enum的入参设计
- 线程处理, 如非必要不要使用应用主线程,不能长时间占用,SDK内应有一个专门线程处理SDK 相关操作
- 尽量减少全局回调
- 提供异常情况回调和输出方便接入方定位,错误回调采用code+msg组合
- 能不用单例的就尽量少的使用
- 对iOS 来说能不用xib 就不用,能不用通知就不用通知
2. 命名规范
- 接口名称,参数命名清晰规范,参数尽可能少,所有传入参数要做好校验,禁止使用拼音和中文
- 类名,全局静态变量,宏等命名尽量使用自定义前缀来保证唯一性,避免与其他模块发生命名冲突。c++ 可以使用namespace来声明类和结构的模块层级,还能避免命名冲突。
- 函数命名遵循共性,不要出现歧义或者违背大家的共识
- 所有资源命名前缀:imageName_工程命名_平台名:toast_xxxSDK_iOS
3. 日志设计
- log模块相关功能可配置(比如日志开关,日志文件输出目录,日志打印接管接口)
- log优先级分不同级别,可控制打印log级别
4. 第三方库依赖处理原则
- 最小可用性原则,即用最少的代码,如无必要勿增实体;
- 最少依赖性原则,即用最低限度的外部依赖,如无必要勿增依赖
- SDK开发中,需要尽量避免依赖第三方库以免引起不必要的冲突;如实在需要,可以以源码形式引入稳定版本,并对类,结构,全局变量等添加前缀以避免外部使用到该第三方库时产生冲突。
5. 版本管理规范
使用三位版本号,每位版本号最高三位数字如:1.0.12
- 版本号递增原则:
- 第三位:bug修复,极小的变更
- 第二位:一般的功能迭代
- 第一位:项目重构,功能变更较大,需团队共同确定
6. 打包原则
- 使用脚本一键打包,提升打包效率,降低手动打包带来的出错率
- 要提供示例工程, 示例工程必须让开发者以最低的成本运行起来,可以用来验证主要功能接口 以及 SDK的接入方式。
经验 & 问题总结