標籤:

有哪些值得推薦的針對 Node.js 本身而非 Express 框架之類的學習資料?


https://api.nodejs.org


這個問題時間比較久了,可能題主現在早已經熟悉 Node.js 不再有此疑惑了。不過還是可以回答一下,針對其他有此疑惑的人。

Node.js 目前社區很繁榮,雖然火過一把之後目前基本已經走入降溫階段,但整個生態體系已經建立,可以預期未來幾年內會比較平穩的在行業中佔有一定的市場份額。

Node.js 的一些框架還是很複雜的,但 Node.js 本身並不複雜。它基本上由兩部分構成:

  • 主程序 node
  • 包管理程序 npm

從提問的角度來看,關注的基本可以肯定僅僅限於 Node.js 中的主程序 node 而已。因為 npm 實質上和 express 框架類似,都是以 node 主程序提供的功能為基礎建立的輔助工具庫而已。

而 node 主程序提供了哪些功能呢,無非是:

  • 四大核心功能:事件(Event)、錯誤(Error)、緩衝(Buffer)、流(Stream)
  • 四種輸入輸出機制:進程(OS/Process)、文件(FileSystem)、網路(Network)、控制台(TTY)
  • 一系列的輔助工具庫:壓縮(Zlib)、密碼學(Crypto)、其他雜項等

所以學習 node 主程序,無非就是從上述幾個方面入手。從這裡可以看出,node 是一個典型的小系統。只提供了為數不多的幾種必備的基礎功能。

這個學習路線,主要是圍繞 API 的角度來說。當然換個角度,比如從 node 的實現機制來說,就又可以劃分出不同的一條線索:

  • Google V8 和 Libuv 分別是什麼?在 Node.js 中起到了怎樣的作用?
  • 從 C++ 部分到 JavaScript 部分,是如何銜接的,機制是什麼?是否有擴展可能?
  • Node.js 提供的 API 中,各自是如何實現的?哪些依賴於底層的 C++ 介面,哪些是純 JavaScript 的?
  • ……

這些每個問題展開都又構成了一系列問題。因此這種從系統構成角度,跨域多個語言的學習研究方式相對來說並不適合初學者。但如果確實比較感興趣,其實讀起來也並不會有大多數人想像那麼難,只是需要多一點耐心,多做一些小 demo 調試一下而已。

課程方面,我沒有推薦的,因為都沒看過。其他答案里提到的可能不錯。不過一個有趣的隱藏問題是,為什麼 Node.js 的書大部分都是講 Express 之類的框架的,對 Node.js 本身反而講的比較少?根本上來說我認為這有兩個原因:

  • 大部分人對 Node.js 感興趣是因為聽說其開發比較便捷,而之所以便捷,實際上是因為有 Express 框架以及各種資料庫輔助庫存在,這種「速成」心態比較符合大眾需求,所以自然書的寫作側著也會向這方面偏移;試想如果全書都不講 Express 之類的框架而只講 node 主程序提供的可憐功能,那麼到底有多少人還會覺得 Node.js 很方便呢?
  • 要寫作一本比較清晰的講解 Node.js 本身的書籍還是很需要作者進行許多深入研究的,否則只能寫一本 API 如何使用式的廣而不深的書籍出來;特別是反過來考慮讀者的受眾群體,雖然大家喜歡有深度的東西,但是有興趣不等於真的會去閱讀,特別是看到滿篇的代碼講解,就會嚇跑很多人,所以不得不說這類書籍其實往往叫好的人多,掏錢的人少,最後讀懂的人就更少了

扯的有點遠,但願有點用吧。


朴靈大大的深入淺出nodejs貌似可以滿足樓主的需要...


nodejs in practice,正在看,感覺還不錯。

深入淺出nodejs,感覺是入門的經典。

官網的文檔,沒有很枯燥,讀起來有種句句切中要害的感覺,挺不錯的。

再深入的話,如果達到了那種水平,就不會問這種問題了。


從目前高票答案上來看,果然你們還是喜歡中文的資料

身為一名程序員,我覺得還是要有看官方文檔的覺悟。國內那些node佈道者有哪個是不從看官方文檔開始的?!你們害怕英文的話,其實可以搜索官方文檔的中文版嘛!看到不太容易懂的知識,再參考下別人的博客。

講真,我碰到很多問題,在谷歌上面用英語來搜的答案,一般比用中文搜出來的答案豐富且精準。


對於 Node 本身的深入分析,我沒有看到有什麼特別好的資料,除了源碼。

講解 Node 在實踐中的使用而不涉及具體框架的書,我推薦兩本:

1. Node.js the Right Way

2. Node.js Design Pattern


node.js實戰講得比較實戰的,各種框架的使用,朴靈的深入淺出講的都是原理。真的是很深入。。。


node本體的追求-----量變到質變,想直接變質。除非對其他一門語言已經深入淺出,借鑒他人經驗便可直抓要害,若是不然,可以走完當下,天亮睡醒或許已然悟道。


覺得朴靈的深入淺出node很不錯,看完了覺得可以在github上找點源碼看看


udemy有個24刀的課符合要求


Node本身的學習最終都又回到了Libevent, V8, 而這些似乎又不是你想學習的,所以不知道你到底關心什麼?或者可以說的明確一些。


推薦閱讀:

NodeJS的desktop應用開發中,關於Electron的中文文檔或者博客之類的很少?
為什麼nodejs的module.js里用了readFileSync而不用readFile?
想學習nodejs 有什麼書可以推薦的?
《深入淺出Node.js》《Node.js 實戰(雙色)》《了不起的Node.js》 這三本書那本書比較好呢?
怎麼才能成為一個nodejs大神?

TAG:Nodejs |