CBB 共通性建构基础 详解

发布于 2022-09-29 12:46:08 字数 2548 浏览 328 评论 0

CBB 的基本概念

CBB 即共通性建构基础(CommonBuildingBlock)指那些可以在不同产品、系统之间共用的零部件、模块、技术及其他相关的设计成果。CBB 可以分为技术货架(平台)和产品货架(平台)。

技术货架和产品货架是相互融合的,一般来说技术货架可以产生不同的产品货架,产品货架也是融入了一个或者多个技术货架而形成的。

对于产品货架,又可以包括三个层次:CBB 模块、CBB 平台以及 CBB 货架。

CBB 模块可以包括共享器件、共享组件、共享单板或模板、共享单机、共享整机、共享分系统、共享系统等;CBB平台即CBB模块组合,是由若干共享单机、共享整机或模块经组合形成共享平台,可供多个产品重用;而 CBB 货架是由 CBB 模块和 CBB 平台按层次进行分类而形成的。

由此可见,当产品是基于许多成熟的共享的 CBB 搭建而成的话,无疑产品的质量、进度和成本会得到更好的控制和保证。有机构调查认为,缺乏CBB的企业,研发人员将有60%左右的重复劳动用于研发已经存在的成果。

CBB 的建设的好处

  1. 通过重用共享资源,在继承中创新,可以大大提高通用产品的成熟度和产品质量,总结起来有以下一些好处:
  2. 技术和软硬件被大量共享,极大降低研发和生产成本;
  3. 在共享基础上,增加新技术、新特性,能够快速开发新产品,对市场做出快速反应;
  4. 共享成熟度高的货架产品,大大增加了产品稳定性和可靠性;
  5. 通过共享,减少低水平重复,释放大量人力资源;
  6. 中间货架产品,比如模板、单机,可以独立开拓增量市场,进一步做大经营规模。

由此可见 CBB 建设的投资必将最终得到丰厚的回报。

公共CBB实现方案思考

对各产品提供一个公共的 CBB:该CBB主要屏蔽多个硬件平台的区别,不同的硬件平台的实现机制不尽相同(不同的硬件芯片,驱动等等),但对外提供的功能是一致的。

每个平台单独实现自己的二进制,在二进制外面做一个封装层来统一供上层调用

优点缺点
简单,每个平台单独实现自己的分支;甚至API规范都不用考虑后续如果需要增加统一的调试逻辑,需要在两个二进制中重复实现

两个平台的实现完全独立,后续的维护成本上升

初看起来本方案实现比较简单,且个平台的二进制实现完全独立无耦合,似乎是比较好的方案。但如果考虑后期的维护成本,由于各平台单独实现,编程风格和实现方式不尽相同,新人加入后的理解成本也会随之而来;另外,后续增加新平台时,还需要再独立完整实现一套,之前的工作成果无法复制使用。

综上考虑,该方案并非优选。

统一实现一套 CBB 代码,命令的解析以及框架共用一套,在具体功能处调用不同平台的接口

优点缺点
各平台的接口规范统一要求,标准化两个平台融合编译时,需要解决头文件冲突问题
在框架中统一添加日志和调试手段工作量
维护过程中,只用关注细粒度的实现,不用熟悉两套框架-

这个方案中可以说是方案1的细粒度实现,整个CBB只用实现一套框架和命令行UI,针对不同平台提出统一规范的API接口。在框架中识别平台后,调用具体平台的接口函数。该方式虽然前期会有开发工作量以及一定的耦合性,但维护成本会大大降低,增加新平台时,也只用根据之前的接口规范重新实现一套插入到当前的框架中即可,可以直接实现代码复用。

总结

以上是在实际工作中的一小项目方案考虑中提炼出来的,相信没有最优只有更优,先记录下当前的思考结果,后续继续优化,也欢迎大家提出意见。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

反话

暂无简介

文章
评论
866 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文