《Node Web開發》書評贈書活動,國內首本node書

出版圈郭志敏發表於2012-05-15

圖靈教育&開源中國聯合舉辦讀樣章贈圖書活動,免費贈送《Node Web開發》10冊!

本書核心:雅虎架構師精準解讀最炙手可熱的Web開發技術,用Node平臺打造高效能Web應用

活動時間: 2012年5月10日~2012年5月20日

活動形式:跟貼,寫不少於300字的書評

書評要求:必須是自己讀過樣章後的切身感受,切忌虛誇,內容力求對沒有讀過樣章的朋友有幫助;書評人要想獲獎,必須有頭像;書評無其他特殊要求,只要是談論本書內容、特色、閱讀感受或者建議即可。

獎品設定:《Node web開發》10冊。

活動規則:此次活動結束後,會挑選10篇優秀書評,獲獎者可以獲贈《Node web開發》圖書1冊。(純粹的頂帖或灌水帖將不作為有效書評進行評選)

enter image description here

書名:《Node web開發》

**作者:**David Herron

**書號:**978-7-115-27832-6

**定價:**35.00元 ­

出版社:人民郵電出版社圖靈公司 ­

**出版時間:**2012年5月 ­ ­

樣章試讀:《Node web開發》.pdf,下載需要登入,請不要使用下載工具下載)

內容簡介:作為伺服器端的JavaScript直譯器,Node是一個輕量高效的開發平臺,用於構建響應快速、高度可擴充套件的Web應用。它使用事件驅動和非阻塞的I/O模型,非常適合開發資料密集、對實時響應要求高的分散式應用,在微軟、eBay、LinkedIn、雅虎等世界知名公司均有成功的應用。

本書是Node開發基礎教程,通過大量示例介紹如何使用HTTP伺服器和客戶端物件、Connect和Express應用框架、非同步執行演算法,以及如何結合使用SQL和MongoDB資料庫。另外,本書同時針對開發和部署環境給出了實用的Node安裝建議,介紹了HTTP伺服器和客戶端應用的開發,闡述了很多Node使用方式,包括在應用中使用資料庫儲存引擎,以及在有無Connect/Express Web應用框架的情況下開發網站的方法。本書還介紹了Node的CommonJS模組系統,幫助開發人員實現一些重要的物件導向設計方案。 本書適合具有一定JavaScript和Web應用開發基礎知識、打算使用伺服器端JavaScript開發高效能Web應用的開發人員閱讀。

本書內容包括:

  • 伺服器端JavaScript對於Web應用開發的作用
  • 使用Node時,針對效能和吞吐量作出成熟的架構選擇
  • 為開發和部署伺服器端Web應用安裝和使用Node
  • Connect和Express應用框架的使用
  • 在應用中設定SQL或MongoDB資料庫系統
  • 區分並評估同步演算法和非同步演算法

**作者簡介:**David Herron 軟體開發人員和軟體質量工程師,在矽谷從業20多年,目前在雅虎擔任質量工程小組的架構師,管控公司基於Node開發的Web應用平臺的質量。

他曾為Sun公司主管工程師,並作為Java SE質量工程小組的架構師負責開發自動化測試工具(包括現在廣泛用於GUI自動測試軟體的AWT Robot類),期間參與了OpenJDK和JDK-Distros專案的啟動,舉辦了世界性的Mustang Regressions大賽,讓Java開發者社群尋找Java 1.6的bug。 任職Sun公司之前,他曾為VXtreme公司開發視訊流處理工具(Windows Media Player的前身),在Wollongong集團從事電子郵件客戶端和伺服器軟體的開發,加入了網際網路工程任務組,負責改進與電子郵件相關的協議。

前  言

歡迎光臨Node(也叫Node.js)開發的世界。Node是一種新興的軟體開發平臺,它將JavaScript從Web瀏覽器移植到常規的伺服器端。Node執行在Chrome的高速V8引擎上,並附帶了一個快速、健壯的非同步網路I/O元件庫。Node主要用於構建高效能、高可擴充套件的伺服器和客戶端應用,以實現真正“實時的Web應用”。

在經過數年嘗試用Ruby和其他語言實現Web伺服器元件之後,Ryan Dahl在2009年開發了Node平臺。這個探索使他從使用傳統的、基於執行緒的併發模型轉向使用事件驅動的非同步系統,因為後者更簡單(多執行緒系統以難於開發著稱),系統開銷更低(與對每個連線維護一個執行緒相比),因而能提高相應的速度。Node旨在提供一個“建立可擴充套件網路伺服器的簡單方式”。這個設計受到了Event Machine(Ruby)和Twisted框架(Python)的影響,並和它們有些類似。

本書致力於講述如何用Node構建Web應用。我們會在書中介紹快速學習Node時一些必需的重要概念。本書會教你編寫真正的應用,剖析其工作原理,並討論如何在程式中應用這些理念。我們需要安裝Node和npm,學習安裝和開發npm包及Node模組。此外,我們還會開發一些應用,度量長時間執行的計算在Node的事件迴圈中的響應能力,介紹將高負載的工作分派到多個伺服器的方法,並介紹Express框架。

本書內容

第1章“Node入門”,介紹了Node平臺。這一章講述了Node的用途、技術構架上的選擇、Node的歷史和伺服器端JavaScript的歷史,然後介紹為什麼JavaScript仍將受困於瀏覽器。

第2章“安裝並配置Node”,介紹如何配置Node開發環境,包括多種從原始碼編譯和安裝的場景,還會簡單介紹在開發環境中如何部署Node。

第3章“Node模組”,解釋了作為開發Node應用基本單位的模組。我們會全面介紹並開發Node模組。然後進一步介紹Node包管理器npm,給出一些使用npm管理已安裝包的例子,還將涉及開發npm包並將其釋出出來供他人使用。

第4章“幾種典型的簡單應用”,在讀者已經有一些Node基礎知識後,開始探索Node應用的開發。我們會分別使用Node、Connect中介軟體框架和Express應用框架開發一個簡單的應用。雖然應用比較簡單,但是我們可以通過其開發探索Node的事件迴圈,處理長時間的運算,瞭解非同步和同步演算法以及如何將繁重的計算交給後臺伺服器。

第5章“簡單的Web伺服器、EventEmitter和HTTP客戶端”,介紹了Node裡的HTTP客戶端和伺服器物件。我們會在開發HTTP伺服器和客戶端應用的同時全面深入介紹HTTP會話。

第6章“存取資料”,探討大部分應用都需要的長期可靠的資料儲存機制。我們會用SQL和MongoDB資料庫引擎實現一個應用。在此期間,我們將用Express框架實現使用者驗證,更好地展示出錯頁面。

閱讀要求

目前,我們一般會採用原始碼的方式安裝Node,這種方式可以很好地用在類Unix和符合POSIX標準的系統上。當然,在接觸Node之前,謙遜的心態是必需的,但最為重要的事情還是讓大腦供血充足。

從原始碼安裝的方式需要一個類Unix或類POSIX系統(比如Linux、Mac、FreeBSD、OpenSolaris等)、新的C/C++編譯器、OpenSSL庫和Python 2.4或更新版本。 Node程式可以用任何文字編輯器來寫,不過一個能處理JavaScript、HTML、CSS等的文字編輯器會更有幫助。

儘管本書介紹的是Web應用開發,但你並不需要擁有一個Web伺服器。Node有自己的Web伺服器套件。

讀者物件

本書寫給所有想在一個新的軟體平臺上開拓新程式設計模式的軟體工程師。 伺服器端程式設計師或許能看到一些新奇的概念,對Web應用開發產生新的理解。JavaScript是一門強大的語言,Node的非同步特性發揮了JavaScript的優勢。 瀏覽器端JavaScript“攻城師”或許會覺得在Node中使用JavaScript和編寫與DOM操作無關的JavaScript程式碼很有趣。(Node平臺上沒有瀏覽器,所以也沒有DOM,除非你安裝JSDom。) 雖然本書各章內容由淺入深,循序漸進,但到底如何閱讀本書悉聽尊便。 本書需要讀者知道如何編寫軟體,並且對JavaScript等程式語言有所瞭解。

排版約定

在本書中,讀者會發現不同的文字樣式。下面是這些樣式的示例和說明。 正文中的程式碼使用特殊字型:“http物件封裝HTTP協議,它的http.createServer方法會建立一個完整的Web伺服器,而.listen方法用於監聽特定的埠。” 程式碼塊是這樣的: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124, "127.0.0.1"); console.log('Server running athttp://127.0.0.1:8124/'); 程式碼塊中會加粗突出顯示程式碼,這表示需要讀者格外注意: var util = require('util'); var A = "a different value A"; var B = "a different value B"; var m1 = require('./module1'); util.log('A='+A+' B='+B+' values='+util.inspect(m1.values())); 命令列的輸入輸出是這樣的: $ sudo /usr/sbin/update-rc.d node defaults 新術語及重要詞彙都會加粗顯示。你將在螢幕上看到的文字,比如選單或對話方塊中的文字,會這樣在正文中提到:“一個真正安全的系統至少會有使用者名稱和密碼輸入框。不過,我們這裡就直接讓使用者單擊Login按鈕了。”

讀者反饋

我們始終歡迎來自讀者的反饋意見。我們想知道讀者對本書的看法,讀者喜歡哪些內容或不喜歡哪些內容。讀者真正深有感觸的反饋,對於我們開發圖書產品至關重要。 一般的反饋可以發郵件到feedback@packtpub.com,但請在郵件標題中註明相關書名。 如果有關於新書的建議,你可以登入www.packtpub.com,填寫SUGGEST A TITLE表單或者向suggest@packtpub.com傳送郵件。 如果你在某個領域積累了豐富的經驗,想寫一本書,或者願意與人合著或審校某本書,請閱讀www.packtpub.com/authors上的作者指南。

讀者服務

現在你已是Packt引以為榮的讀者了,因此我們特別要交待幾件事,以保障你作為讀者的最大權益。

下載示例程式碼 在www.packtpub.com通過自己的賬號購買圖書的讀者,可以下載所有已購買圖書的程式碼 。如果這本書是你在其他地方購買的,訪問www.packtpub.com/support並註冊,我們將通過電子郵件將相關檔案傳送給你。

勘誤

雖然我們會全力確保本書內容的準確性,但錯誤仍在所難免。如果你發現了本書中的錯誤(包括文字和程式碼錯誤),而且願意向我們提交這些錯誤,我們會十分感激。這樣一來,不僅可以減少其他讀者的疑慮,也有助於本書後續版本的改進。要提交錯誤,請訪問www. packtpub.com/support,選擇相關圖書,單擊errata submission form連結,然後輸入勘誤資訊。經過驗證後,你提交的勘誤資訊就會新增到已有的勘誤列表中。要檢視已有的勘誤資訊,請訪問www.packtpub.com/support並選擇相關圖書。

《Node Web開發》.pdf

注: 原報名網址:http://www.oschina.net/question/244461_53105 在此活動下方直接評論亦可。

相關文章