NODE.JS學習的常見誤區及四大名著

NODE.JS學習的常見誤區及四大名著html

 

前段時間因爲不滿於社區裏不少人對於NODE.JS的種種誤解而寫了一篇文章名爲:前端

NODE.JS之我見:http://www.cnblogs.com/pugang/p/4374681.html後端

 

收到了不少兄弟的熱情回覆和激烈討論,在此深表感謝,有的朋友以爲我寫的比較粗獷,沒有給出具體的性能分析和對比,在此我想說的是其實好多東西的性能分析,根本就不用我寫到博客上,其一是若是我寫了,不少人一樣會以爲不客觀,不中立,其二是網上不少中立的機構,隨便搜索一下,對比太多了,就比如NODE.JS和Nginx的對比,網上客觀的分析太多了,只要你能google。瀏覽器

近兩年的NODE.JS雄起讓不少人以爲JavaScript就要統一全棧了,網上這種言論充斥着各大論壇,彷彿計算機科學裏面惟一最NB的就只有JavaScript,其餘的只是都是shit,首先須要澄清的是,我並非憤青,也沒有鄙視前端工程師的意圖,可是我始終認爲,網絡上應該有人把一些技術的前因後果說清楚,不要輕信謠傳,由於實踐是檢驗整理的惟一標準。服務器

那麼JavaScript在NODE.JS裏面究竟是一個什麼地位呢?NODE.JS究竟是什麼呢?我先用一個形象的比喻來講一下,說完了我會稍加分析,懂球的看看是否是這麼個道理。JavaScript之比於NODE.JS就像狐狸和老虎的關係,這裏面的老虎是C\C++,而NODE.JS只不過是給老虎批了一層薄薄的皮,你們必定都聽過狐假虎威,狐狸之因此NB是由於背後站着老虎,而老虎的NB不僅是一張皮,是來自於骨子裏面的NB。網絡

另外一個誤區是NODE.JS是單線程的,異步IO,因此效率奇高,非通常服務器所能比擬,當NODE.JS跑起來的時候我建議你抓取一個.dump文件看一下,NODE.JS裏面到底有多少個線程,單線程的東西能做出異步IO麼?給人的感受是NODE.JS已經能夠跨越OS而存在了,OS自己也作不到的事情NODE.JS卻能夠作到,據筆者所知,生產環境中的現有異步IO超過99%都是以多線程或者線程池模擬出來的,因此不要相信這樣的謠傳。來看下面的簡單NODE.JS文件IO示例:前端工程師

 

var fs = require('fs' ); var http = require('http' ); http.createServer(function(request, response) { var newFile = fs.createWriteStream("readme_copy.md"); request.pipe(newFile); request.on('end' , function() { response.end('uploaded!' ); }); }).listen(8080);

 

這樣一個簡單的文件IO恐怕最少也要兩個線程才能完成,一個線程用於執行JavaScript,另外一個用於模擬異步IO。因此在這裏得出的結論是JavaScript徹底不NB,真正NB的是C\C++,也許你又說了,那爲何C\C++沒有取得NODE.JS的火爆程度和高性能,那只是你不知道,Nginx就是一個事實的證實,Nginx的性能可能要比NODE.JS要高一些,純C打造的, 那爲何當時NODE當時設計的時候沒有選用純C呢?網上有人寫文章說是做者以爲C太難了,怕好多人接受不了,並且C的標準庫是同步的IO,會讓人誤用。多線程

另外一個常見的誤解是前端的JavaScript和NODE.JS裏面的JavaScript是一個東西,其實徹底否則,雖然語法同樣,可是僅此而已,前端的JavaScript只能操做瀏覽器的一畝三分地,然後端的JavaScript跟像是C的代言人,傳說中的狐假虎威,C在OS上能作的事情,他基本均可以作到。異步

 

下面說說NODE.JS學習的四大名著。性能

我通常不多推薦國人寫的書,由於好多人寫的書浮躁,生猛,不自成體系,以吹NB爲樂,以讓別人看不懂爲榮,包括翻譯的書,可是在NODE.JS上我第一本要推薦的是樸靈寫的<深刻淺出NODE.JS>, 看得出來樸靈服務端C代碼寫的不是不少,可是至少他把NODE.JS講的很清楚並且確實是懂球的,基本上都是對的,這一點就很是可貴,質量上乘,堪比美帝,行文中還能夠看出此做者比較謙遜。

我要推薦的另外3本書是以下3本,很少解釋了,你們去國外的論壇圈子裏轉轉,或者去亞馬遜豆瓣看看書評就懂了。

 

 

 

<Pro Node.js for Developers>

<PROFESSIONAL Node.js ® BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE>

<Single Page Web Applications>

 

相關文章
相關標籤/搜索