自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

給項目裝了個 NPM 包,被 CTO 大罵了一頓?

開發(fā) 前端
為什么大佬們選庫的時候都會選體積更小的庫呢?或者支不支持 tree-shaking 呢?那是因為體積越小,說明頁面運行的速度更快。

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~

平時我們在寫代碼的時候,有時候有一些功能比較難實現(xiàn),或者市面上已經(jīng)有現(xiàn)成的庫,那么我相信很多人會毫不猶豫地去安裝這個包,并投入到開發(fā)中去使用~

圖片

但是其實這樣是不對的,為了保證項目的健壯性、可維護性、可持續(xù)性,建議大家在安裝一個包的時候,一定要先經(jīng)過一定的評估,并且這個評估是多方面的,分別是:

  • 特性是啥
  • 穩(wěn)定性如何
  • 性能如何
  • 生態(tài)、社區(qū)、文檔
  • 學習成本高不高
  • 兼容性怎么樣
  • 趨勢如何

了解庫的特性

第一點肯定是要了解你所安裝的包有哪些特性,是否真的符合你的項目需要,就比如我用 Vue 來開發(fā)頁面,是因為使用它的響應式來開發(fā)頁面非常方便,分離了視圖層和數(shù)據(jù)層,代碼可維護性更高。

或者比如 lodash 這樣的的工具庫,完全就是為了每一個項目而生的,使用率非常高。

在選庫的時候一定要了解庫的特性,了解一下:這個庫是否能完美解決你的需求?這個庫是否功能過剩?如果功能過剩的話是否需要換另一個更簡潔的庫?

庫的穩(wěn)定性如何?

一個庫的穩(wěn)定性是非常重要的,這也關系到你項目的穩(wěn)定性,你總不會想要給你的項目埋一顆定時炸彈吧?

一個經(jīng)常出 BUG 的庫是不能出現(xiàn)在生產(chǎn)環(huán)境的,所以選了一個庫之后,最好能好好調(diào)研下這個庫的穩(wěn)定性,多測試測試。

庫的性能怎么樣?

為什么大佬們選庫的時候都會選體積更小的庫呢?或者支不支持 tree-shaking 呢?那是因為體積越小,說明頁面運行的速度更快。

你覺得這個庫很牛逼,但是用了它,頁面加載多了 5s ,那這個庫就是垃圾,需要馬上換掉,這就不是一個符合你們項目的庫。

生態(tài)如何?

一個庫的生態(tài)包括很多方面:

  • 文檔齊不齊全: 文檔是這個庫的說明書,所以文檔是很重要的,這決定了你能不能最大發(fā)揮這個庫的功能。
  • 社區(qū)活不活躍: 社區(qū)活不活躍,決定了在使用這個庫的時候可以少踩一些坑,因為社區(qū)活躍說明你的坑,很多人都踩過了。
  • 對應的周邊庫多不多: 就比如 Vue 配套了 router、vuex、pinia 等等,讓你在使用這個庫的時候,能更好地、按需地,去拓展你想要的項目需求。

學習成本

使用一個庫,學習成本可太重要了,畢竟學習是需要時間的,而時間就是金錢??!

我覺得有一句話挺有道理的:開發(fā)一個庫的第一要素,就是要讓使用者能無腦地去使用。

拿 Vue 來舉例子,前端程序員,稍微有點基礎的,差不多幾天就能上手 Vue,并利用 Vue 去開發(fā)一些簡單的頁面,所以 Vue 的學習成本是很低的,這也是它能爆火的原因。

反觀 JSX 又很多人覺得用起來不夠無腦,維護起來也麻煩,所以很多項目都放棄使用 JSX。

所以在調(diào)研的時候,一定要看這個庫的上手難易程度如何,在某些場景最好是能做到無縫銜接。

兼容性怎么樣?

先不說庫了,就是你在使用一個 JavaScript 或者 CSS 的 API 時,你也得上 MDN 查查這個 API 的兼容性如何。

而 NPM 庫 肯定底層是依賴 JavaScript、CSS 的,所以這些庫肯定也是有兼容性問題的。

比如 Vue 就不兼容 IE,因為很多比較新的 JavaScript API 都不兼容 IE 瀏覽器,所以也導致了 Vue 不兼容 IE 瀏覽器。

所以在用一個庫的時候一定要調(diào)研一下兼容性,或者說能不能通過某些措施,讓這個庫具備比較好的兼容性。

責任編輯:武曉燕 來源: 前端之神
相關推薦

2022-12-22 17:46:19

2021-04-12 07:32:01

數(shù)據(jù)庫

2020-10-10 09:09:21

CTOCRUD設計

2019-08-20 08:36:15

混淆堆棧Android

2019-11-21 13:59:20

網(wǎng)絡攻擊攻擊成本網(wǎng)絡安全

2021-05-18 09:39:19

互聯(lián)網(wǎng)操作系統(tǒng)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

2023-05-05 09:48:14

LinuxIO模型

2021-12-17 07:30:42

排序算法效率

2021-09-13 10:25:35

開發(fā)技能代碼

2024-05-09 10:26:14

2020-03-29 08:56:07

文件系統(tǒng)磁盤Java

2021-02-09 16:31:30

物聯(lián)網(wǎng)年夜飯餐飲

2021-11-05 14:57:00

微軟操作系統(tǒng)Windows

2025-03-11 09:15:00

2019-06-27 22:23:56

谷歌Android開發(fā)者

2021-10-13 06:29:44

中臺項目技術
點贊
收藏

51CTO技術棧公眾號