推薦 9 個 Node.js 學(xué)習(xí)、進階、Debugging 分析、實戰(zhàn)的重磅開源項目
1. node
Node.js 是一個開源,跨平臺的 JavaScript 運行時環(huán)境。它在瀏覽器外部執(zhí)行 JavaScript 代碼。
有關(guān)使用 Node.js 的更多信息,請參見 Node.js網(wǎng)站。
https://github.com/nodejs/node
2. node-api-cn
Node.js API 中文文檔項目
https://github.com/nodejscn/node-api-cn
3. node-in-debugging
這是一個 Node.js 調(diào)試指南的項目,已經(jīng)出書了。
里面講到當(dāng)程序出現(xiàn)性能瓶頸時,如何結(jié)合代碼去推測可能出問題的地方,展現(xiàn)程序的性能瓶頸的方法。
比如用 perf、火焰圖、紅藍差分火焰圖 去分析和定位問題。
perf:
火焰圖:
紅藍差分火焰圖 :
https://github.com/nswbmw/node-in-debugging
4. nodebestpractices
Node.js 最佳實踐
-
這是對Node.js最佳實踐中排名最高的內(nèi)容的總結(jié)和分享
-
這里是最大的匯集,且每周都在增長。 當(dāng)前,超過 50 個最佳實現(xiàn),樣式指南,架構(gòu)建議已經(jīng)呈現(xiàn)。每天都有新的 issue 和 PR 被創(chuàng)建,以使這本在線書籍不斷更新。
-
大部分的條目包含額外的信息。大部分的最佳實踐條目的旁邊,您將發(fā)現(xiàn)鏈接,它將呈現(xiàn)給您示例代碼,博客引用和更多信息
目錄
-
項目結(jié)構(gòu)實踐 (5)
-
異常處理實踐 (11)
-
編碼規(guī)范實踐 (12)
-
測試和總體質(zhì)量實踐 (8)
-
進入生產(chǎn)實踐 (16)
-
:star: 新: 安全實踐(23)
-
Performance Practices (coming soon)
https://github.com/goldbergyoni/nodebestpractices
5. deep-into-node
這個項目是關(guān)于:深入理解 Node.js:核心思想與源碼分析。
源碼分析包括(libuv, v8), 需要有一定的 C、C++基礎(chǔ)。Node.js 的源碼到處閃爍著開發(fā)者的智慧和追求極致的精神。包括但不限于:
-
系統(tǒng)架構(gòu)
-
設(shè)計模式
-
性能優(yōu)化
-
奇技淫巧
本書通過分析 node 核心模塊的實現(xiàn),向讀者闡述 node 異步 IO,事件循環(huán)的核心思想。幫助開發(fā)者更好的使用 Node.js。
通過追溯 node 社區(qū)開發(fā)issue, 探討 node 的變遷和演進,學(xué)習(xí) node.js 的設(shè)計哲學(xué)。
https://github.com/yjhjstz/deep-into-node
6. Nodejs-Roadmap
這個項目是作者從事 Node.js 開發(fā)以來的學(xué)習(xí)歷程,旨在為大家提供一個較詳細的學(xué)習(xí)教程,側(cè)重點更傾向于 Node.js 服務(wù)端所涉及的技術(shù)棧,如果本文能為您得到幫助,請給予支持!
Node.js 由 Libuv、Chrome V8、一些核心 API 構(gòu)成,如下圖所示:
以上展示了 Node.js 的構(gòu)成,下面做下簡單說明:
-
Node Standard Library:Node.js 標(biāo)準(zhǔn)庫,對外提供的 JavaScript 接口,例如模塊 http、buffer、fs、stream 等
-
Node bindings:這里就是 JavaScript 與 C++ 連接的橋梁,對下層模塊進行封裝,向上層提供基礎(chǔ)的 API 接口。
-
V8:Google 開源的高性能 JavaScript 引擎,使用 C++ 開發(fā),并且應(yīng)用于谷歌瀏覽器。如果您感興趣想學(xué)習(xí)更多的 V8 引擎知識,請訪問 What is V8?
-
Libuv:是一個跨平臺的支持事件驅(qū)動的 I/O 庫。它是使用 C 和 C++ 語言為 Node.js 所開發(fā)的,同時也是 I/O 操作的核心部分,例如讀取文件和 OS 交互。來自一份 Libuv 的中文教程
-
C-ares:C-ares 是一個異步 DNS 解析庫
-
Low-Level Components:提供了 http 解析、OpenSSL、數(shù)據(jù)壓縮(zlib)等功能。
以上只是做一個初步的認(rèn)知,如果你想深入了解 Node.js 那么多每個點都是值得你深入研究的。
無論是內(nèi)容還是閱讀效果,都很好,是值得推薦的一個學(xué)習(xí) Node 的開源項目。
https://github.com/qufei1993/Nodejs-Roadmap
7. NeteaseCloudMusicApi
功能特性
總共有 206 個 api !
比如:
登錄
刷新登錄
發(fā)送驗證碼
校驗驗證碼
注冊(修改密碼)
獲取用戶信息 , 歌單,收藏,mv, dj 數(shù)量
獲取用戶歌單
獲取用戶電臺
獲取用戶關(guān)注列表
獲取用戶粉絲列表
獲取用戶動態(tài)
獲取用戶播放記錄
獲取精品歌單
獲取歌單詳情
搜索
搜索建議
獲取歌詞
歌曲評論
收藏單曲到歌單
專輯評論
歌單評論
mv 評論
電臺節(jié)目評論
banner
獲取歌曲詳情
獲取專輯內(nèi)容
獲取歌手單曲
獲取歌手 mv
獲取歌手專輯
獲取歌手描述
獲取相似歌手
獲取相似歌單
相似 mv
獲取相似音樂
獲取最近 5 個聽了這首歌的用戶
獲取每日推薦歌單
獲取每日推薦歌曲
私人 FM
簽到
喜歡音樂
等等。。。
如果你想做一個 音樂 類的開源項目,可以好好看看這個項目哦。
https://github.com/Binaryify/NeteaseCloudMusicApi
8. node-elm
這是基于 node.js + Mongodb 構(gòu)建的后臺系統(tǒng)。
整個項目分為兩部分:前臺項目接口、后臺管理接口,共 60 多個。涉及登陸、注冊、添加商品、商品展示、篩選排序、購物車、下單、用戶中心等,構(gòu)成一個完整的流程。
目標(biāo)功能
IP定位 -- 完成
城市列表 -- 完成
搜索地址 -- 完成
上傳圖片 -- 完成
添加商鋪 -- 完成
添加食品 -- 完成
測量距離 -- 完成
搜索美食,餐館 -- 完成
根據(jù)距離、銷量、評分、特色菜、配送方式等進行排序和篩選 -- 完成
評價列表 -- 完成
食品詳情 -- 完成
商家詳情 -- 完成
購物車功能 -- 完成
登錄、注冊 -- 完成
修改密碼 -- 完成
用戶信息 -- 完成
添加、刪除、修改收貨地址 -- 完成
下單 -- 完成 :sparkles::sparkles:
訂單信息 -- 完成
紅包 -- 完成
商鋪管理 -- 完成
食品管理 -- 完成
管理員權(quán)限驗證 -- 完成
超級管理員 -- 完成
訂單管理 -- 完成
流量統(tǒng)計 -- 完成
前后臺路由同構(gòu) -- 完成
部署上線 -- 完成
https://github.com/bailicangdu/node-elm
9. awesome-nodejs
內(nèi)容目錄
官方的
配套
瘋狂科學(xué)
命令行應(yīng)用
功能編程
HTTP
調(diào)試/分析
記錄中
命令行實用程序
構(gòu)建工具
硬件
模板化
Web框架
文獻資料
文件系統(tǒng)
控制流
溪流
即時的
圖像
文本
數(shù)字
數(shù)學(xué)
日期
網(wǎng)址
資料驗證
解析中
人性化
壓縮
網(wǎng)絡(luò)
數(shù)據(jù)庫
測驗
安全
標(biāo)桿管理
縮小器
驗證
授權(quán)
電子郵件
作業(yè)隊列
Node.js管理
自然語言處理
流程管理
自動化
AST
靜態(tài)網(wǎng)站生成器
內(nèi)容管理系統(tǒng)
論壇
寫博客
奇怪的
序列化
各種各樣的
資源
講解
發(fā)現(xiàn)
文章
時事通訊
影片
圖書
網(wǎng)志
課程
備忘單
工具
社區(qū)
各種各樣的
相關(guān)清單
https://github.com/sindresorhus/awesome-nodejs
最后
好了,Node.js 學(xué)習(xí)的好開源項目,目前發(fā)現(xiàn)的就是上面那些了。