CBB 共通性建构基础 详解
CBB 的基本概念
CBB 即共通性建构基础(CommonBuildingBlock)指那些可以在不同产品、系统之间共用的零部件、模块、技术及其他相关的设计成果。CBB 可以分为技术货架(平台)和产品货架(平台)。
技术货架和产品货架是相互融合的,一般来说技术货架可以产生不同的产品货架,产品货架也是融入了一个或者多个技术货架而形成的。
对于产品货架,又可以包括三个层次:CBB 模块、CBB 平台以及 CBB 货架。
CBB 模块可以包括共享器件、共享组件、共享单板或模板、共享单机、共享整机、共享分系统、共享系统等;CBB平台即CBB模块组合,是由若干共享单机、共享整机或模块经组合形成共享平台,可供多个产品重用;而 CBB 货架是由 CBB 模块和 CBB 平台按层次进行分类而形成的。
由此可见,当产品是基于许多成熟的共享的 CBB 搭建而成的话,无疑产品的质量、进度和成本会得到更好的控制和保证。有机构调查认为,缺乏CBB的企业,研发人员将有60%左右的重复劳动用于研发已经存在的成果。
CBB 的建设的好处
- 通过重用共享资源,在继承中创新,可以大大提高通用产品的成熟度和产品质量,总结起来有以下一些好处:
- 技术和软硬件被大量共享,极大降低研发和生产成本;
- 在共享基础上,增加新技术、新特性,能够快速开发新产品,对市场做出快速反应;
- 共享成熟度高的货架产品,大大增加了产品稳定性和可靠性;
- 通过共享,减少低水平重复,释放大量人力资源;
- 中间货架产品,比如模板、单机,可以独立开拓增量市场,进一步做大经营规模。
由此可见 CBB 建设的投资必将最终得到丰厚的回报。
公共CBB实现方案思考
对各产品提供一个公共的 CBB:该CBB主要屏蔽多个硬件平台的区别,不同的硬件平台的实现机制不尽相同(不同的硬件芯片,驱动等等),但对外提供的功能是一致的。
每个平台单独实现自己的二进制,在二进制外面做一个封装层来统一供上层调用
优点 | 缺点 |
---|---|
简单,每个平台单独实现自己的分支;甚至API规范都不用考虑 | 后续如果需要增加统一的调试逻辑,需要在两个二进制中重复实现 |
两个平台的实现完全独立,后续的维护成本上升
初看起来本方案实现比较简单,且个平台的二进制实现完全独立无耦合,似乎是比较好的方案。但如果考虑后期的维护成本,由于各平台单独实现,编程风格和实现方式不尽相同,新人加入后的理解成本也会随之而来;另外,后续增加新平台时,还需要再独立完整实现一套,之前的工作成果无法复制使用。
综上考虑,该方案并非优选。
统一实现一套 CBB 代码,命令的解析以及框架共用一套,在具体功能处调用不同平台的接口
优点 | 缺点 |
---|---|
各平台的接口规范统一要求,标准化 | 两个平台融合编译时,需要解决头文件冲突问题 |
在框架中统一添加日志和调试手段 | 工作量 |
维护过程中,只用关注细粒度的实现,不用熟悉两套框架 | - |
这个方案中可以说是方案1的细粒度实现,整个CBB只用实现一套框架和命令行UI,针对不同平台提出统一规范的API接口。在框架中识别平台后,调用具体平台的接口函数。该方式虽然前期会有开发工作量以及一定的耦合性,但维护成本会大大降低,增加新平台时,也只用根据之前的接口规范重新实现一套插入到当前的框架中即可,可以直接实现代码复用。
总结
以上是在实际工作中的一小项目方案考虑中提炼出来的,相信没有最优只有更优,先记录下当前的思考结果,后续继续优化,也欢迎大家提出意见。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论