• 你能详细解释库,框架和工具的区别吗?
  • 发布于 2个月前
  • 136 热度
    0 评论
  • 斗鱼
  • 0 粉丝 21 篇博客
  •   

棘手的术语

术语“framework(框架)”,“library(库)”和“tool(工具)” 可以根据情境,在不同时期,对不同的人,意味着不同的东西。这里使用的一般定义如下:


Libraries(库)

库是有用功能的有组织的集合。一个库的典型功能包括处理字符串、日期、HTML DOM元素、事件、Cookie、动画、网络请求等等。每个函数都将值返回给调用应用程序,该应用程序可以在您选择的情况下实现。你可以把它想象成汽车零件的选择:你可以自由地使用任何零件来建造一辆能跑的车,但是你必须自己造一个引擎。


库通常是提供一个更高的抽象层,平滑的实现细节和矛盾。例如,Ajax通常依赖于 XMLHttpRequest API ,但这需要几行代码,并且在不同的浏览器之间存在细微的差异。但是库可以提供一个更简单的 ajax() 函数,让程序员更专注于高层次的业务逻辑。


一个库可以将开发时间缩短20%,因为您不必担心细节问题。但是它也不是没有缺点的:

1.库内的错误可能难以定位和修复
2.开发团队不能保证快速发布补丁
3.修补程序可能会更改API,并对您的代码进行重大更改。


Frameworks(框架)

框架是一个应用程序的骨架。它要求您以一种特定的方式来处理软件设计,,并在某些点插入您自己的逻辑。通常为您提供诸如事件、存储和数据绑定之类的功能。使用汽车类比,那么框架提供了一辆车的底盘,车身和发动机。 为了让车辆始终保持运行状态,你可以添加、删除或修改某些组件。


框架通常比库提供更高的抽象层,并且可以帮助您快速构建项目的 80%。但它的缺点是

1.如果应用程序超出了框架的范围,那么剩下的20%可能会很难完成;
2.框架更新可能很困难 ;
3.框架核心代码和概念很少更新,但是同样的事情,程序员往往都会在短时间内发现一个更好的解决方式;


Tools(工具)

工具有助于开发,但不是项目的一个组成部分。工具包括系统构建、编译器、转译器、代码压缩、图像压缩、部署机制等等。

工具应该提供一个更容易的开发过程。 例如,许多程序员喜欢用 Sass 编译成CSS,因为它提供了代码分离,嵌套,渲染时变量,循环和函数。 浏览器不了解 Sass / SCSS 语法,因此在测试和部署之前,必须使用适当的工具将代码编译为 CSS。


总结:

库,框架和工具之间的区别很少。框架可以包括一个库。库可以实施类似框架的方法。对于前面二者来说,工具又是必不可少的。
我试图标记每个提到的项目,看看他们属于库,框架还是工具,但尺度不同,标记的类型也可能会有所不同。如果这听起来太复杂,可以考虑编写原生 JavaScript。没关系,但是您将不可避免地编写自己的库 和/或 框架代码。JavaScript 本身就是一种浏览器和操作系统抽象塔的抽象!

用户评论