作者:朱金灿
来源:http://blog.csdn.net/clever101
一般来说在一个平台级别的软件中,开源代码库作为一个第三方库起着一个辅助性的支撑作用。其作用类似于:
但今天发现这样做有一个弊端。就是平台底层往往重新定义第三方库的一些基础数据结构。举个例子说明一下吧,比如我要开发一个遥感图像处理软件,用到了gdal库。在以往的经历中平台架构师往往是平台底层库中重新定义了图像的一些底层的数据结构,比如自定义波段类型枚举、控制点、颜色表等等,而这些数据结构在gdal库中本来就有。这样做有两大弊端:
一是重复开发浪费时间,同时没有充分利用开源第三方库的经验和资源。
二是不利于平台的软件的二次开发,加大了学习成本。因为这样做既要学习开源第三方库的底层数据结构,又得重新学习平台底层的数据结构。
为此我想到需要重新认识开源第三方库在平台软件开发中的作用。是否可以这样定义开源第三方库和平台底层的关系: