我们提供客户端 sdk 服务,是跨平台的 sdk ,支持 android ios ,Windows mac linux 系统,其他中 android 使用了 java 对接口进行封装 ios ,mac 使用了 oc 对接口进行封装,linux 和 Windows 是 c++接口。
我的问题是,我们定义的类和结构体类型,要不要添加企业的前缀,我们企业的前缀是 FB 缩写,比如 EngineConfig 写为 FBEngineConfig, Class LearnEngine,写为 FBLearnEngine
个人觉得为了简洁,C++完全可以通过命名空间 fb::LearnEngine 避免冲突,添加前缀的好处也就是可以一眼看出这是 FB 公司提供的库,除了这个感觉没有其他好处了吧
开源库,比如 opencv ,mnn 都没有添加 CV ,MNN 之类的前缀,但是看一些云厂商,比如腾讯,火山,他们又都添加了 TX 之类的前缀,所以我有些疑惑了。目前我倾向不添加前缀,不知道会不会有什么坑
另外对外的文件名要不要添加 fb_的前缀呢?
![]() |
1
JoeJoeJoe 13 天前
> 支持命名空间的加不加前缀无所谓, OC 这种没有命名空间的语言是肯定要加前缀的, 要不集成容易冲突. java 跟 c++这种有包名/命名空间概念的加不加都行.
1. 跨平台 sdk 加不加的随意, 反正用户最终也看不到 2. 中间层的桥接 sdk 可以统一加一下, 用户调用的时候稍微方便一些: 2.1 调用你们方法的时候, 敲上前缀方便 ide 联想 2.2 避免引用的二义性, 不用给重名的类加别名 |
2
skallz 13 天前
很多 sdk ,不管啥语言的,好像都是会加的,方便开发对接人员看到这个前缀下意识知道这是什么 sdk 的功能
|
![]() |
3
devzhaoyou OP @JoeJoeJoe 感谢 C++选择不添加前缀了,namespace 目前感觉足够了,OC 和 JAVA 添加一下,以后遇到坑再说
|