全面系統的入門教程——評《Node.js 開發指南》

王者自由發表於2012-08-01

全面系統的入門教程——評《Node.js 開發指南》

作者 BYVoid 想必是很多 OIer 熟知的神牛了。作為中學學弟(當然並沒有實際見過幾次面),我是很仰慕他的。作為 NOI 金牌獲得者,他不僅在資訊學競賽上頗有造詣,也涉獵於程式設計開發,同時在漢語言文字上研究頗深。高中時期他就為學校用 PHP 編寫了一個功能強大的線上評測系統(Online Judge)——CmYkRgB123 Online Grading System (COGS),其即時評測並顯示各測試點結果的 NOI 系列式評測方式深受同學們喜愛,曾經在外網開放過也獲得相當好評。此後更以 MVC 框架寫出了新的 Vakuum 線上評測系統。他還開發了高質量的繁簡轉換工具 OpenCC ,解決了長期困擾中文領域的漢字轉換問題,並參與了 Linux 下 iBus 輸入法專案,還在漢典網站上做了大量工作。近期他又上線了韻典網,為查詢檢索古代音韻提供了方便。等等如此,不一而足。

說到 Node.js ,我們不得不談到 Google Chrome 。作為忠實的 Google 粉絲,我從其測試版就開始使用,甚至在沒有 Linux 版本時也在用 wine 模擬器使用,原因只有一個——快。它如此快速,這是因為使用了 V8 JavaScript 引擎。自此,基於解釋的語言開始擺脫了龜速的宿命,並由此發展出了本書的主角 Node.js 。當然它是基於 JavaScript 的(不是 Java!),作者貼心地為不熟悉 JavaScript 的讀者專門編寫了一章附錄以熟悉 JS 。

學習一門程式語言需要首先熟悉其程式設計環境和編譯器。作者在書中為 Windows 使用者、Linux 使用者和 Mac OS X 使用者詳細描述了安裝配置過程,並給出了常見問題的解決方案。書中還介紹了包管理器(類似於 Ubuntu 的軟體中心、TeXlive 的 tlmgr 等) npm ,描述了包的多版本控制,並介紹了常用的模組和包的用法。書中還介紹了 Node.js 的除錯方法以及其在 Eclipse 環境中的配置使用。

與一般程式語言不同,Node.js 是非同步 I/O 的,故此初入門時很難以理解。作者用直截了當的例項和準確有力的語言解釋了非同步式 I/O 和事件式程式設計的相關概念。書中詳細講述了 Node.js 的物件的變數概念,介紹了常用工具 util 、事件驅動 events 、檔案系統 fs 和 http 伺服器模組。作者更以一個微博網站的例項,從零開始一步一步教會讀者網站開發的各種方法步驟,涉及到工程規劃、模型-檢視-控制器開發模式、基於 Bootstrap 的網頁前端設計、基於 MongoDB 的資料庫操作、Session 和 Cookies 的控制訪問、前後端互動、日誌記錄等各種網站開發中需要掌握的知識和方法。

貼心的附錄介紹了 JavaScript 的高階特性,包括作用域、閉包、物件等知識,為函數語言程式設計鋪墊道路。還給出了一些約定俗成的程式設計規範,從縮排到變數函式命名都給出了十分有用的建議。書末的索引更是方便了專業名詞的查詢。每章結束都會給出參考文獻,不僅方便讀者參閱,也體現了作者嚴謹認真的寫作態度。

總的來說,作為國內第一本 Node.js 相關的書籍,此書雖為入門,但全面系統,開闢了一條正確清晰的道路。如果你想學習這樣一個嶄新先進的網頁開發語言,請把《Node.js 開發指南》買回家吧,閒時可以打發時間,用時可以速查速記,學時可以輕鬆掌握。或許有一天會出電子版,但一本書拿在手裡的感覺是電子版無論如何比不得上的。有什麼問題可以到 Node.js 中文社群 http://cnodejs.org/ 提問,通過社交網路的力量充實自己。

同時也希望作者能乘風破萬里浪,以後更有佳作出。

王者自由 2012年8月1日

相關文章