给项目装了个 NPM 包,被 CTO 大骂了一顿?

开发 前端
为什么大佬们选库的时候都会选体积更小的库呢?或者支不支持 tree-shaking 呢?那是因为体积越小,说明页面运行的速度更快。

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

平时我们在写代码的时候,有时候有一些功能比较难实现,或者市面上已经有现成的库,那么我相信很多人会毫不犹豫地去安装这个包,并投入到开发中去使用~

图片

但是其实这样是不对的,为了保证项目的健壮性、可维护性、可持续性,建议大家在安装一个包的时候,一定要先经过一定的评估,并且这个评估是多方面的,分别是:

  • 特性是啥
  • 稳定性如何
  • 性能如何
  • 生态、社区、文档
  • 学习成本高不高
  • 兼容性怎么样
  • 趋势如何

了解库的特性

第一点肯定是要了解你所安装的包有哪些特性,是否真的符合你的项目需要,就比如我用 Vue 来开发页面,是因为使用它的响应式来开发页面非常方便,分离了视图层和数据层,代码可维护性更高。

或者比如 lodash 这样的的工具库,完全就是为了每一个项目而生的,使用率非常高。

在选库的时候一定要了解库的特性,了解一下:这个库是否能完美解决你的需求?这个库是否功能过剩?如果功能过剩的话是否需要换另一个更简洁的库?

库的稳定性如何?

一个库的稳定性是非常重要的,这也关系到你项目的稳定性,你总不会想要给你的项目埋一颗定时炸弹吧?

一个经常出 BUG 的库是不能出现在生产环境的,所以选了一个库之后,最好能好好调研下这个库的稳定性,多测试测试。

库的性能怎么样?

为什么大佬们选库的时候都会选体积更小的库呢?或者支不支持 tree-shaking 呢?那是因为体积越小,说明页面运行的速度更快。

你觉得这个库很牛逼,但是用了它,页面加载多了 5s ,那这个库就是垃圾,需要马上换掉,这就不是一个符合你们项目的库。

生态如何?

一个库的生态包括很多方面:

  • 文档齐不齐全: 文档是这个库的说明书,所以文档是很重要的,这决定了你能不能最大发挥这个库的功能。
  • 社区活不活跃: 社区活不活跃,决定了在使用这个库的时候可以少踩一些坑,因为社区活跃说明你的坑,很多人都踩过了。
  • 对应的周边库多不多: 就比如 Vue 配套了 router、vuex、pinia 等等,让你在使用这个库的时候,能更好地、按需地,去拓展你想要的项目需求。

学习成本

使用一个库,学习成本可太重要了,毕竟学习是需要时间的,而时间就是金钱啊!

我觉得有一句话挺有道理的:开发一个库的第一要素,就是要让使用者能无脑地去使用。

拿 Vue 来举例子,前端程序员,稍微有点基础的,差不多几天就能上手 Vue,并利用 Vue 去开发一些简单的页面,所以 Vue 的学习成本是很低的,这也是它能爆火的原因。

反观 JSX 又很多人觉得用起来不够无脑,维护起来也麻烦,所以很多项目都放弃使用 JSX。

所以在调研的时候,一定要看这个库的上手难易程度如何,在某些场景最好是能做到无缝衔接。

兼容性怎么样?

先不说库了,就是你在使用一个 JavaScript 或者 CSS 的 API 时,你也得上 MDN 查查这个 API 的兼容性如何。

而 NPM 库 肯定底层是依赖 JavaScript、CSS 的,所以这些库肯定也是有兼容性问题的。

比如 Vue 就不兼容 IE,因为很多比较新的 JavaScript API 都不兼容 IE 浏览器,所以也导致了 Vue 不兼容 IE 浏览器。

所以在用一个库的时候一定要调研一下兼容性,或者说能不能通过某些措施,让这个库具备比较好的兼容性。

责任编辑:武晓燕 来源: 前端之神
相关推荐

2022-12-22 17:46:19

2021-04-12 07:32:01

数据库

2020-10-10 09:09:21

CTOCRUD设计

2019-11-21 13:59:20

网络攻击攻击成本网络安全

2019-08-20 08:36:15

混淆堆栈Android

2021-05-18 09:39:19

互联网操作系统Go

2018-04-12 17:00:07

云计算烧烤SaaS

2015-05-07 10:02:47

库克苹果

2024-07-17 09:16:58

2022-08-14 08:29:21

npmNode

2021-12-17 07:30:42

排序算法效率

2023-05-05 09:48:14

LinuxIO模型

2021-09-13 10:25:35

开发技能代码

2024-05-09 10:26:14

2020-03-29 08:56:07

文件系统磁盘Java

2021-02-09 16:31:30

物联网年夜饭餐饮

2021-11-05 14:57:00

微软操作系统Windows

2019-06-27 22:23:56

谷歌Android开发者

2021-10-13 06:29:44

中台项目技术

2022-12-08 10:45:20

点赞
收藏

51CTO技术栈公众号