#编程什么的我也会一点#什么是库?


2017.3.20更新:

前两天看见一个学习网站,对库的讲解非常好,直接看这个吧!
http://www.runoob.com/w3cnote/cpp-static-library-and-dynamic-library.html

======以下原文======

库是啥?

程序员奉行的三大美德之一,懒,是促成库产生的直接原因。

程序员把一些会反复使用的功能打包放到一块,这个“包裹”就是库。其他的程序员也要使用这个功能,直接拿来用就好了。简单的说,只要是一个功能,就可以做成库。

 

举一个计算器的例子。

桌面软件首先要有个给用户操作的界面。界面上有数字按钮、运算符按钮、显示结果的小窗口。

除了界面,还要有负责数学运算(加减乘除)的代码。

这个程序的代码就可以分为两部分,一部分负责输入输出(界面),一部分负责运算。这两部分就可以各自做成库的形式。


库有什么好处?

1避免重复劳动。

2更新、打补丁方便。程序可以分成很多功能模块,每个模块做成库的形态,在硬盘上就是一个文件。哪个模块需要升级,只更新替换那个模块对应的文件就行了。

3保护核心代码。大项目可以分块外包给外部的团队,只要把核心功能和外包功能之间的界限划分清楚,外包团队可以在不知道核心代码的情况下,开发外包功能模块。这种组织模式就依赖库的技术。

4团队分工协作。大项目分小组执行,每个小组负责一个模块,模块间定义好接口,小组成员不需要关心其他模块的实现。

库的这些优点,也有其他技术途径能做到,各自的出发点不同,侧重点也就不同,这里就不一一比较了。

 

库咋用?

程序的源代码经历了预处理、编译之后,得到一堆对象文件。之后,链接器把对象文件揉到一起,生成一个可执行文件。在链接的时候,可以把库加进来,可执行文件中包含了库。

这种方式,因为是在运行前就把库加进来,所以叫静态链接库。这种办法的弊端之一是,需要的外部库较大时,最终生成的可执行文件会非常臃肿。

 

为了减肥,有另一种办法使用库,就是在程序运行的时候,把库动态的加载进来。这种方式,因为是在运行的时候把库加进来,所以叫动态链接库。


库与框架的区别

库和框架有相互重叠和包含的地方,某些语境中互相替用也不觉有碍,但是它们的侧重点不同。

库强调的是功能的封装,框架侧重的是面向某个领域的技术解决方案。

库是更基础层面的产品,使用更灵活,需要哪个功能,就使用对应的库。一个庞大的库集合,只取自己所需,不需要全部。

框架是为了解决一类问题而制定的一个套餐,可以说是库的商业升级版,因此框架一般和业务的关系非常紧密。

有了框架,不仅仅是解决了“重复造车轮”的问题,还会提供一个相对周全的开发环境。比如框架甚至懂得车轮和车轴的关系,可以快速的“制造”一辆车。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值