從一個菜鳥的視角看Node.js--《Node.js開發指南》樣張書評
關注Node.js有一段時間,一直沒能有機會靜下心來學習。一部分是因為課程和專案的壓力,更多的原因則是缺乏優秀的系統性資料。雖然有CNode這樣優秀的社群,以及《The Node Beginner Book》等外文書籍,但這些或過於零散深入,或不夠系統,或淺嘗輒止。還好圖靈出版社在近期相繼推出了《Node Web 開發》和《Node.js開發指南》,不僅填補了國內Node方面書籍的空白,也為像我一樣的菜鳥提供了系統性學習的機會。
言歸正傳,下面就結合我讀《Node.js開發指南》試讀章節的感受以及自身的淺顯認識,向大家以一個菜鳥的視角來理解Node.js。學識有限,語言粗俗接地氣,歡迎拍磚。
1.Node.js是什麼
簡單來說,Node.js(江湖上更多的將其稱為Node)是一個讓javascript執行在伺服器端的開發平臺。字尾js也顯式的告訴了我們它與javascript千絲萬縷的聯絡。
2.菜鳥對Node.js的認識
由於Node誕生之年較晚,所以它得天獨厚的站在的了巨人的肩膀,結合了很多原有前後端開發的的技術特點和優勢。
1)Node.js是一個實時web平臺,其最大的優勢就是充分考慮了實時響應和超大規模資料要求下的可擴充套件性。在當今這個上至國家領導人,下至掃地阿姨,全民大資料,全民雲端計算的時代,Node的這一特性使得它自誕生之初起,就樹立了一個天之驕子的形象。
2)採用單執行緒、非同步式IO、事件驅動的設計模型。恰巧本人最近在開發一個基於Reactor的網路庫,採用的正是單執行緒事件驅動的方式,所以切身體會到這一模型相對於使用多執行緒,多程式來處理網路IO所帶來的優勢,它不僅大大降低了開發的複雜性(多進(線)程之間的互動與同步),而且大大提升了系統效率。特別說一點,對於我這個多執行緒半調子,在除錯方面,這樣的模型也比多執行緒更容易發現問題。(相信被多執行緒搞到記憶力嚴重衰退的廣大程式猿同胞深有感觸吧)
3)強大而靈活的包管理器,擁有規模龐大的第三方模組。這些模組包括網站開發框架、MongoDB等資料庫介面、除錯支援、加密解密,css生成工具、郵件支援等等等等……連VMware以及微軟這樣的江湖大佬也趕緊跑來親近親近,收在帳下,應用於自家平臺。我們可以用這些來開發具有複雜邏輯的網站、命令列工具、單元測試工具、圖形介面程式、javascript編譯器等等……正是有了這些強大的模組,讓我們一個平臺,一種語言,打遍天下無敵手。有了Node,媽媽再也不用擔心我的學習啦!
4)使用V8作為其javascript的引擎也是Node一大特點。說起V8,熟悉Chrome的朋友應該都不陌生,這款號稱世界上最快的javascript引擎,在Chrome超越IE稱為瀏覽器頭把交椅的過程中可謂功不可沒。該引擎即時編譯的執行速度已經接近原生程式碼執行速度,給Node.js平臺的速度提供了強有力的保障。
5)Node.js內建了HTTP伺服器支援。這樣我們就省去了使用PHP等語言開發網站之前,先要被大損腦細胞的Lamp平臺的配置折磨到死的過程(當然現在可以用很多大牛寫的指令碼來一鍵配置)。並且有了內建的HTTP伺服器,使得除錯與部署更加的方便。
6)對傳統高效開發語言C/C++的支援。歷史已經證明C/C++在效能上的優勢地位,幾十年的積累,產生很多優秀的開發庫,Node可以呼叫C/C++程式碼這一特點使得我們仍然可以繼續沿用前人的優秀成果,並且可以將開發中對效能有極大需求的部分使用C/C++來開發。(C/C++開發者福音,哈哈)
Node.js作為一個新生事物能有這麼多的優點,令人欣慰。當然,也正是由於Node.js的發展時間還很短,Node也存在一些問題。例如,非同步式開發不符合常規線性思路,優秀框架仍然不多,平臺穩定性亦差強人意等等……
3.菜鳥對Node.js未來的淺薄看法
Node.js自2009年誕生起,就深受開源社群歡迎,一大批優秀的開發者加入Node大家庭,這使得其高速發展,當然,對於Node的質疑聲也一直存在,正如對C++ java的質疑幾十年來從未停止,有質疑,才有發展。雖然目前仍然存在一些問題,隨著時間推移,一定會被逐漸的解決。另外,Node在開源社群十分火熱,歷史證明,開源社群的產品與封閉的商業公司的產品,總是發展的更快更好。 當今時代,計算機產業高速發展,“大規模”“海量”“高併發”已經深入各個領域,這正是Node.js嶄露頭角的時候。隨著更多平臺(例如cloud foundry)提供對Node.js的支援,更多的公司(例如淘寶)開始重視與應用Node.js,更多的開發者學習使用Node.js,我相信在未來Node.js的前途一片光明。
4.對該書的感受
最後說一下我閱讀《Node.js開發指南》試讀章節的感受。首先感嘆一下作者如此年輕,卻在技術領域有如此造詣,想我都在讀研了,仍然只是芸芸眾生中的滄海一粟,慚愧。其次,這本書是我見過的第一本系統性的介紹Node.js的書籍。雖然只讀了前部分,但從目錄可以看出,本書先講安裝配置、基礎入門再到核心知識,然後用一個微博網站例項來理論結合實際,最後再將一些高階特性。相信通過讀這本書,一定會對Node.js有一個系統性的認識。另外,寫書風格很好,雖然是國產,但比某些翻譯國外大牛的書,至少在語言上流暢很多。
另外,需要說明一下,寫這篇文章的原因是圖靈和javaeye社群聯合舉行的“ITeye 8月技術圖書有獎試讀”活動。原文連結: http://wangtengchao.iteye.com/blog/1620744#bc2276243
相關文章
- 遊戲菜鳥張一鳴遊戲
- 菜鳥看前端(Git)前端Git
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 一個菜鳥管理的學習和思考(一)
- JavaScript面試的完美指南(開發者視角)JavaScript面試
- 一個菜鳥管理的學習和思考(二)
- 從服務端視角看高併發難題服務端
- 鳥哥的Linux私房菜 -- 電子書(pdf)Linux
- Spring MVC 4.2.4 文件實踐(一)--- 菜鳥從零開始學系列SpringMVC
- 寫一個菜鳥裹裹小程式吧
- SVM之不一樣的視角
- Python從菜鳥到高手:分片(Slicing)Python
- 從NLP視角看電視劇《狂飆》,會有什麼發現?
- 從全域性視角看資料結構資料結構
- Golang快速入門:從菜鳥變大佬Golang
- Java集合從菜鳥到大神演變Java
- 菜鳥求助!!!
- Linux菜鳥到老鳥的那些建議Linux
- java從菜鳥到碼神之路——運算子Java
- 上帝視角看 TypeScriptTypeScript
- 換個視角來看TypeScript中的交叉運算TypeScript
- 菜鳥市場
- 一個99年菜鳥研究生的疫情三年
- 在IntelliJ IDEA中,開發一個摸魚看書外掛IntelliJIdea
- Java程式設計師從笨鳥到菜鳥全部部落格目錄Java程式設計師
- 訂單視角看支付
- JVM視角看物件建立JVM物件
- 《音視訊開發進階指南》讀書筆記(一) —— 音視訊基礎概念筆記
- 前端視角看視訊處理前端
- 我是如何自學C語言的(一個菜鳥的學習路)C語言
- 一張證書引發的噱案
- 菜鳥的Hadoop快速入門Hadoop
- 菜鳥理解的區塊鏈區塊鏈
- 菜鳥的架構師之路架構
- Scala菜鳥進階之路一 基礎
- 菜鳥做 bomb lab 之第一關
- Android菜鳥學習js筆記一AndroidJS筆記
- 從前端程式設計師的視角看小程式的穩定性保障前端程式設計師
- 起量是玄學嗎?——從上帝視角看買量