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