大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~
平时我们在写代码的时候,有时候有一些功能比较难实现,或者市面上已经有现成的库,那么我相信很多人会毫不犹豫地去安装这个包,并投入到开发中去使用~
但是其实这样是不对的,为了保证项目的健壮性、可维护性、可持续性,建议大家在安装一个包的时候,一定要先经过一定的评估,并且这个评估是多方面的,分别是:
- 特性是啥
- 稳定性如何
- 性能如何
- 生态、社区、文档
- 学习成本高不高
- 兼容性怎么样
- 趋势如何
了解库的特性
第一点肯定是要了解你所安装的包有哪些特性,是否真的符合你的项目需要,就比如我用 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 浏览器。
所以在用一个库的时候一定要调研一下兼容性,或者说能不能通过某些措施,让这个库具备比较好的兼容性。