• 重新认识开源第三方库在平台软件开发中的作用


    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

                 一般来说在一个平台级别的软件中,开源代码库作为一个第三方库起着一个辅助性的支撑作用。其作用类似于:

             

            但今天发现这样做有一个弊端。就是平台底层往往重新定义第三方库的一些基础数据结构。举个例子说明一下吧,比如我要开发一个遥感图像处理软件,用到了gdal库。在以往的经历中平台架构师往往是平台底层库中重新定义了图像的一些底层的数据结构,比如自定义波段类型枚举、控制点、颜色表等等,而这些数据结构在gdal库中本来就有。这样做有两大弊端:

    一是重复开发浪费时间,同时没有充分利用开源第三方库的经验和资源。

    二是不利于平台的软件的二次开发,加大了学习成本。因为这样做既要学习开源第三方库的底层数据结构,又得重新学习平台底层的数据结构。

            为此我想到需要重新认识开源第三方库在平台软件开发中的作用。是否可以这样定义开源第三方库和平台底层的关系:

                                                                       

            

            上图的具体含义是这样的:对于第三方库的已有的底层数据结构,平台底层没有封装必要的就不进行封装,直接拿过来使用,需要封装的才进行封装。

            再想深一步,平台底层对第三方库的封装在很多时候是需要的,但是这种封装必须是为了获取实际的扩展需要,而不是单纯为了封装而封装。


             如果你觉得我的博客对你有帮助,请在下面网址中博客之星评选活动中投我一票:

    http://vote.blog.csdn.net/item/blogstar/clever101(单击候选人介绍下面的投他一票那个按钮)

    参与投票有机会获奖:

        最佳贡献奖:通过微博分享活动就有机会获得30元充值卡一张(每周抽选5名)
        幸运奖:凡参与投票用户就有机会获得精美小礼品一份。(每周抽选5名)
        积极参与奖:所有参与投票并符合条件的用户均可获得20个下载积分。




  • 相关阅读:
    如何设计工作流引擎?
    产品特点概述驰骋工作流
    驰骋工作流程如何与您的系统进行耦合
    进制转换
    DNS欺骗(转) Anny
    Remember My Account Number(2 schema) Anny
    Mysql中的临时表使用方法(转) Anny
    Mysql任务调度(Event Schedular) Anny
    Using ssh connect to Amazon EC2 instance Anny
    Amazon EC2名词项目笔记(转) Anny
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470667.html
Copyright © 2020-2023  润新知