作者:朱金灿
来源:http://blog.csdn.net/clever101
一般来说在一个平台级别的软件中,开源代码库作为一个第三方库起着一个辅助性的支撑作用。其作用类似于:
但今天发现这样做有一个弊端。就是平台底层往往重新定义第三方库的一些基础数据结构。举个例子说明一下吧,比如我要开发一个遥感图像处理软件,用到了gdal库。在以往的经历中平台架构师往往是平台底层库中重新定义了图像的一些底层的数据结构,比如自定义波段类型枚举、控制点、颜色表等等,而这些数据结构在gdal库中本来就有。这样做有两大弊端:
一是重复开发浪费时间,同时没有充分利用开源第三方库的经验和资源。
二是不利于平台的软件的二次开发,加大了学习成本。因为这样做既要学习开源第三方库的底层数据结构,又得重新学习平台底层的数据结构。
为此我想到需要重新认识开源第三方库在平台软件开发中的作用。是否可以这样定义开源第三方库和平台底层的关系:
上图的具体含义是这样的:对于第三方库的已有的底层数据结构,平台底层没有封装必要的就不进行封装,直接拿过来使用,需要封装的才进行封装。
再想深一步,平台底层对第三方库的封装在很多时候是需要的,但是这种封装必须是为了获取实际的扩展需要,而不是单纯为了封装而封装。
如果你觉得我的博客对你有帮助,请在下面网址中博客之星评选活动中投我一票:
http://vote.blog.csdn.net/item/blogstar/clever101(单击候选人介绍下面的投他一票那个按钮)
参与投票有机会获奖:
最佳贡献奖:通过微博分享活动就有机会获得30元充值卡一张(每周抽选5名)
幸运奖:凡参与投票用户就有机会获得精美小礼品一份。(每周抽选5名)
积极参与奖:所有参与投票并符合条件的用户均可获得20个下载积分。