大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。
当前系列: 软件工程 修改 解锁

框架/类库

这个概念让很多小白抓瞎……

尽量白话的比喻/解释:

我们项目可以利用的、现成的一些代码、工具等。

区别

非常微妙,大致类似于CEO和厂长/老板的区别:框架逼格更高。严格来说,

  • 框架:整个项目的根基、基本盘
  • 类库:项目使用/引用的一些实现局部功能的代码,一般以类的形式封装

但框架也可以由类库组成,类库也可以充当框架……


--------------------



所谓类库(class libary),简单的理解:就是“类的仓库”,或者一堆类、大量类的集合。这些类通常都是公开的、公用的,由厂商、开源个人/组织编写,提供给广大开发者使用。

一般来说,编程语言的所有者会为语言提供最基本的类库,我们就会称其为“官方库”,或者“基本库”;其他人提供的类库就被称之为“第三方库”。

所谓框架(Framework),概念也比较模糊,一般认为,它高于类库,即它还提供一些类库以外的东西,但这“以外的东西”,本质上还是可以以类的形式出现,所以……尤其是很多类库要往自己脸上贴金,硬说自己是类库,你也不能说它不对!

我们打几个比方:

  • 类库是车间,框架是工厂
  • 类库是厂长经理,框架是CEO
  • 建设一个小区,框架是地基、道路、水电管网,类库是混凝土、各种预制件……
--------------------



说明:以下内容不要求预备班学习

依赖地狱

一个真实的开发项目,需要依赖大量的第三方类库,而:

  • 这些类库之间又有各种依赖
  • 依赖还可能基于版本不同

从而形成“依赖地狱”:一旦其中任何一依赖项出错,项目就崩了。

这不仅仅是在项目搭建的时候,而且还发生项目升级的时候(新版本不兼容老版本)。

为了解决(抑制)这个问题,推出了各种依赖管理工具:

  • npm:面向JavaScript、前端开发人员
  • nuget:面向.NET开发人员
  • maven:面向Java开发人员

他们的本质都是

  • 提供一个(或若干个)远程的仓库(网址),集中的存放大量的第三方类库
  • 用户在本地安装下载类库工具(npm/nuget/maven),利用该工具向远程请求下载某三方类库
  • 当用户下载某个第三方类库的时候,自动的将该三分类库所依赖的其他三方类库一同提供
  • 同时,类库管理工具还在本地维护第三方类库的各种依赖关系


类库 依赖 npm nuget maven
觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 软件工程 中继续学习:

上一课: Git插件:eclipse
下一课: 已经是最后一课了……

我们的 特色

  • 面向就业
  • 线上线下结合
  • 同学互助
  • 师生共赢

报班 QQ群:273534701

  • 获取视频资料
  • 要求作业点评
  • 参加阶段性测试
  • 模拟面试