源碼群友問:你這么多項目是怎么進行技術選型的?

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以點此加我微信ruochuan12?進群參與,每周大家一起學習200行左右的源碼,共同進步。已進行4個月了,很多小伙伴表示收獲頗豐。

源碼群有群友提問我是怎么找到那么多npm包的,覺得這篇文章不錯,分享給大家。


假設我需要一個 React 的彈框組件,我應該如何快速選擇一個合適的 npm 庫?

一、搜索

在正確的網址進行搜索:

  • npm 官網: 官方網站,權威網站

  • yarn 官網

  • Github

使用正確的關鍵詞進行搜索: react modal

如果不出所料,這里可以選出一個或多個比較合適的第三方庫。那對于一個選擇困難癥,如何從中挑選一個更好的庫呢?

b5fc92d830aafee4e11ed0a6d01c5648.png
npm search

二、選型

你有沒有參與過業務技術選型,你們是如何考慮技術選型的呢?這是工作了三五年的前端出去面試時經常會碰到的問題。

答:使用最流行的技術方案。最流行的技術方案往往擁有更豐富的生態與更多的從業人員,既方便找輪子,又好招人。

而最流行的技術方案指的是 「挑選下載量最高的庫,而非 Star 最高的庫」。當然這句話有些太絕對,但適用于大部分場景。

那還有一些小場景呢?再考慮幾個關鍵要素: PQM

  1. P: 考察其流行度,周下載量多少,Github Stars 多少,是否無人問津

  2. Q: 考察其質量性,是否含有測試、Type等

  3. M: 考察其維護性,如最后一次更新時間,是否長時間未更新,如 Issues 的個數,是否有好多問題懸而未決

這里推薦一個選型必備網站: npm trends,它可以很直白地把這些指標放在一起進行對比,并且能夠推薦「與該 Package 所有相似的包」

7ed0a419cbeb77222258c850471bf316.png
npm trend

三、文檔

要多看文檔!

我向我女朋友強調了這點,她問我,那應該如何去找到它的文檔呢?

  1. npmjs.com 某個庫詳情頁面的右側,有 Homepage 字段指向官方文檔

  2. github.com 某個 repo 詳情頁面的右上角,有官網鏈接

  3. 如果以上兩者都沒有,那 Readme.md 就是文檔

其次,某個 package 的官網、Github 信息都會在 package.json 中聲明

{"homepage": "https://lodash.com/","repository": {"type": "git","url": "git+https://github.com/lodash/lodash.git"}
}

接下來再送幾個小技巧

# 快速找到并打開 react 的文檔
$ npm docs react# 快速找到并打開 react 的倉庫
$ npm repo react

四、示例

文檔看完就進入了實操階段,可按照以下步驟學會使用該庫

  • 文檔中的示例: 如 lodash及一眾較小體積的庫

  • 倉庫中的示例: 如 redux、nextjs 與 koa

  • 倉庫中的測試: 適用于一些邊界的示例

為了某一個待調研的庫,在本地新建一次性文件進行學習是一件不推薦的事情,以下三個工具幫你搞定所有的試驗性調研

  • npm devtool: 在瀏覽器控制臺用以調試較小提交的庫,如 lodash/ms/joi 之類

  • codesandbox: 用以調試 Vue/React 等周邊庫

  • stackblitz: 用以調試 NodeJs 相關庫

五、源碼

# 快速找到并打開 react 的倉庫
$ npm repo react

把代碼下載到本地,去跑通、去運行、去測試、去調試。

最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?私信 江西?拉你進群。

推薦閱讀

整整4個月了,盡全力組織了源碼共讀活動~
我歷時3年才寫了10余篇源碼文章,但收獲了100w+閱讀

老姚淺談:怎么學JavaScript?

我在阿里招前端,該怎么幫你(可進面試群)

0216e8ed6ab31b60289dc5b25e03c56f.gif

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》10余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助1000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。

dac51d4a088de3a5a1daf0696339e4ad.png

識別方二維碼加我微信、拉你進源碼共讀

今日話題

略。分享、收藏、點贊、在看我的文章就是對我最大的支持~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275152.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275152.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275152.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS開發之打包上傳報錯: ERROR ITMS-90087/ERROR ITMS-90125

制作好的framework在打包上傳至AppStore如果出現以下錯誤,則說明這個SDK里面包含了x86_64, i386 架構,當然這個AppStore是不允許的,所以會在上傳的時候報錯,解決辦法就是要這個SDK剔除掉x86_64, i386這兩個架構 解決辦法&#xff…

[轉]cocos2d游戲開發,常用工具集合

cocos2d游戲開發,常用工具集合 原文地址:http://www.cocoachina.com/bbs/read.php?tid-68951.html 位圖字體工具Bitmap Font ToolsBMFont (Windows)FonteditorGlyph DesignerHieroLabelAtlasCreator粒子編輯工具Particle Editing ToolsParticleCreat…

拓展視野學習前端,我推薦這些

眾所周知,關注公眾號可以了解學習掌握技術方向,學習優質好文,落實到自己項目中。還可以結交圈內好友,讓自己融入到積極上進的技術氛圍,促進自己的技術提升。話不多說,推薦這些優質前端公眾號前端下午茶拓寬…

ios 動畫設計_動畫和講故事在設計中的力量

ios 動畫設計As human beings, we’ve always been fond of storytelling. Just think of campfire stories, Santa Claus, or that thrilling book you just finished. Here’s how you can use the power of storytelling to make your designs better.作為人類,我…

poj 2696 A Mysterious Function

A Mysterious FunctionTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3517 Accepted: 2398Description For any integers p and q with q > 0, define p mod q to be the integer r with 0 < r < q ?1 such that p?r is divisible by q. For example,…

面試官:能不能手寫一個 Promise?

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以點此加我微信ruochuan12 進群參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。已進行4個月了&#xff0c;很多小伙伴表示收獲頗豐。以下問題你是不是在哪里聽過&#xff1f…

設計圖像素和開發像素_游戲開發的像素藝術設計

設計圖像素和開發像素Pixel art is a large part of the legacy of game development. Every Pokemon game up until their X/Y series was rendered entirely with pixel art, Ragnarok Online (2000) was one of the first commercial works to feature 3D rendering along s…

CF1100F Ivan and Burgers

CF1100F Ivan and Burgers 靜態區間&#xff0c;選取任意個數使得它們的異或和最大 \(n,\ m\leq5\times10^5,\ a_i\in[0,\ 10^6]\) lxl ST表&#xff0c;線性基 如果暴力維護線性基&#xff0c;線段樹時間復雜度為 \(O(n\log^2n)-O(\log^3n)\) 由于重復元素對答案沒有影響&…

深入淺出Nintex——更新PeopleandGroup類型的Field

轉載于:https://www.cnblogs.com/mingle/archive/2011/11/25/2263199.html

從 vue-cli 源碼中,我發現了27行讀取 json 文件有趣的 npm 包

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。已進行四個月了&#xff0c;很多小伙伴表示收獲頗豐。想學源碼&#xff0c;極力推薦訂閱我寫…

自定義view示例_自定義404頁的10個示例(從最佳到最差)

自定義view示例自定義404頁面 (Custom 404 pages) To customize or not to customize your 404 page? I hope by now you know the answer is that, yes, under essentially all circumstances you should customize your 404 page. 404 errors occur when someone attempts t…

BTF:實踐指南

本文地址&#xff1a;BTF&#xff1a;實踐指南 | 深入淺出 eBPF 1. BPF 的常見限制 1.1 調試限制1.2 可移植性2. BTF 是什么&#xff1f;3. BTF 快速入門 3.1 BPF 快速入門3.1 BTF 和 CO-RE4. 結論 BPF 是 Linux 內核中基于寄存器的虛擬機&#xff0c;可安全、高效和事件驅動…

python 混入類MixIn

寫在前面 能把一件事情說的那么清楚明白&#xff0c;感謝廖雪峰的官方網站。 1.為什么要用混入類&#xff1f;&#xff08;小白入門&#xff09; 繼承是面向對象編程的一個重要的方式&#xff0c;因為通過繼承&#xff0c;子類就可以擴展父類的功能。 step1: 回憶一下Animal類層…

關于字符串流的學習(c++)

/* 字符串流 在字符數組中可以存放字符,也可以存放整數、浮點數以及其他類型的數據。在向字符數組存入數據之前,要先將數據從二進制形式轉換為ASCII代碼,然后存放在緩沖區,再從緩沖區送到字符數組。從字符數組讀數據時,先將字符數組中的數據送到緩沖區,在賦給變量前要先將ASCII…

估計很多前端都沒學過單元測試~

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。已進行四個月了&#xff0c;很多小伙伴表示收獲頗豐。想學源碼&#xff0c;極力推薦訂閱我寫的《學習…

xd可以用ui動效效果嗎_通過動畫使UI設計栩栩如生:Adobe XD和After Effects

xd可以用ui動效效果嗎Note — If you don’t fancy splashing out on an Adobe license, you can trial their products for 14 days each. That should give you more than enough time to play, check it out.注意—如果您不愿意花錢購買Adobe許可證&#xff0c;則可以分別試…

BookMarklet:瑞士軍刀你用了嗎?

Bookmarklet 是一段隱藏在鏈接后面的js代碼&#xff0c;可以收藏在收藏夾。通過這段代碼&#xff0c;我們可以跨瀏覽器&#xff08;當然&#xff0c;也跨平臺&#xff09;實現一些工具。比起瀏覽器插件來說&#xff0c;使用更加方便。典型的&#xff0c;dict.cn 網站的工具和有…

第十二周編程總結

這個作業屬于那個課程C語言程序設計II這個作業要求在哪里https://pintia.cn/problem-sets/1127748174659035136/problems/1127749414029729792我在這個課程的目標是更好的學習函數這個作業在那個具體方面幫助我實現目鍛煉了我的編程能力參考文獻c語言程序設計26-1 計算最長的字…

可能是全網首個前端源碼共讀活動,誠邀加入學習

大家好&#xff0c;我是若川。從8月份到現在11月結束了。每周一期&#xff0c;一起讀200行左右的源碼&#xff0c;撰寫輔助文章&#xff0c;截止到現在整整4個月了。由寫有《學習源碼整體架構系列》20余篇的若川【若川視野公眾號號主】傾力組織&#xff0c;召集了各大廠對于源碼…

現代游戲中的UX趨勢

ux設計中的各種地圖游戲UX (GAMES UX) Even though websites and games have matured side-by-side over the past few decades, games have a long and detailed history of user experience. Sure, it was scrappy and fairly rudimentary initially, but the only way you c…