跨平台SDK设计原则

前言

以下内容是笔者做SDK开发总结的点点滴滴,未完待续

依赖

1.不要重复造轮子,尽量选用久经考验的跨平台库,如boost、yaml、pcap、vtk、cjson等,这样能把设计和测试成本降到最低

2.构建工具优先选用cmake,cmake在Windows、Linux、Mac OS平台都有很好的支持,支持图形化配置

3.编程语言优先选用成熟、稳定的版本,如C++选用2011版本,不要使用太花里胡哨的特性

数据类型

1.数据类型尽量能够多平台通用,如cstdint类型、boost跨平台类型

2.字节对齐,注意字节序

3.有些硬件并不支持双精度浮点数,例如全志T3芯片,如果没有精度要求建议浮点数默认float而非double

通信协议

1.版本号,考虑到变更风险

2.数据校验,防止数据丢失

3.尽量不要依赖配置文件,协议应该能够充分解决依赖

设计原则

1.单一接口原则,高内聚,隔离实现,头文件不暴露无关的细节

2.流程尽量简单,不给使用者带来额外消耗

3.代码可读性良好,尽量少用模板,枚举优于宏定义,typedef优于宏替换

4.做好防御性编程,SDK应该在调试阶段尽量多的发现自身的问题

阅读剩余
THE END