編輯推薦
一綫Node開發者數年實戰經驗總結,適閤所有前端和後端的開發人員閱讀
本書內容涵蓋Node 高並發的原理、源碼分析以及使用 Node 開發應用所需要的不同層麵的技術實踐。
具體包括 Node 異步機製(配以源碼分析),編輯與調試,測試技術,Docker 部署,模塊機製,V8 引擎與代碼優化,Promise 和 ES6 generator ,LoopBack 開源框架,使用 C++ 編寫擴展,JavaScript 嚴格模式,編碼規範等內容。
內容簡介
本書內容涵蓋瞭 Node.js高並發的原理、源碼分析以及使用 Node.js開發應用所需要的不同層麵的技術實踐。具體來講,本書包括 Node.js異步機製(配以源碼分析)、編輯與調試、測試技術、Docker 部署、模塊機製、V8 引擎與代碼優化、Promise 和 ES6 Generator、LoopBack 開源框架、使用 C++ 編寫擴展、JavaScript嚴格模式、編碼規範等內容。在 LoopBack 章節,本書詳細介紹瞭使用此框架開發企業級 Web 應用的步驟,幫助讀者迅速掌握使用這個強大框架的訣竅。最後一章詳細介紹瞭編寫不同類型的 C++ 模塊的知識,並對堆內存管理等內容做瞭深入探討。
本書適閤所有前端和後端的開發人員閱讀。
作者簡介
尤嘉,東南大學計算機碩士,從事軟件研發工作多年,先後就職於奇虎和獵豹移動。做過基於 chromium 的瀏覽器,也從事過 WebKit 與 V8 方麵的研發工作。目前從事 P2P 與區塊鏈方麵的項目研發。
內頁插圖
目錄
第1章 Node異步編程範式 1
1.1 同步與異步的比較 2
1.2 Node異步的實現 7
1.2.1 HTTP請求——完全異步的例子 8
1.2.2 本地磁盤I/O——多綫程模擬 17
1.3 事件驅動 18
參考資料 19
第2章 搭建自己的開發環境 21
2.1 Node的編譯與安裝 22
2.2 開發與調試 23
2.3 單元測試 29
2.3.1 Mocha 測試框架 29
2.3.2 TDD 風格 32
2.3.3 BDD 風格 34
2.3.4 生成不同形式的測試報告 35
2.3.5 代碼覆蓋率工具Istanbul36
參考資料 40
第3章 使用Docker部署Node服務 43
3.1 Docker基礎 44
3.2 在Docker中運行Node 45
3.3 導齣配置好的容器 47
參考資料 48
第4章 Node模塊 49
4.1 程序入口 50
4.2 VM模塊 50
4.3 模塊加載與緩存 52
4.4 模塊分類 54
4.5 正確導齣模塊 55
4.6 小心使用全局變量 56
第5章 V8引擎 57
5.1 Java Script代碼的編譯與優化 58
5.1.1 即時編譯 58
5.1.2 隱藏類 59
5.1.3 內聯緩存 60
5.1.4 優化迴退 61
5.1.5 寫齣更具親和性的代碼 62
5.1.6 藉助TypeScript 63
5.2 垃圾迴收與內存控製 65
5.2.1 V8的垃圾迴收算法 65
5.2.2 使用Buffer 67
5.2.3 避免內存泄漏 70
參考資料 77
V
第6章 Promise對象 79
6.1 Promise的含義 80
6.2 基本用法 80
6.3 then的鏈式寫法 82
6.4 bluebird庫 85
參考資料 86
第7章 用ES6 Generator解決迴調金字塔 87
7.1 Node異步實現流程 88
7.2 用Generator實現異步調用與多並發 89
7.3 嚴格模式下運行 99
7.4 理解執行過程 100
7.5 本章結語 106
第8章 LoopBack開源框架 107
8.1 安裝與運行 108
8.2 路由與權限控製 113
8.3 添加新模型 121
8.4 初始化數據庫 131
8.5 鈎子機製 134
8.6 中間件 137
8.7 模型關係 139
8.8 使用cluster模式運行服務 141
參考資料 144
第9章 編寫C++擴展 145
9.1 使用C++編寫擴展模塊 146
9.1.1 導齣對象 146
9.1.2 導齣函數 149
9.1.3 導齣構造函數 151
9.2 綫程模型與CPU密集型任務 164
9.3 綫程對象 164
9.4 本章結語 170
參考資料 170
附 錄 171
附錄 A JavaScript 嚴格模式 172
附錄 B JavaScript 編碼規範 182
參考資料 195
前言/序言
本書寫給那些打算或者正在使用 Node.js(簡稱Node,後文均用此簡稱)創建 Web 應用的開發者。眾所周知,JavaScript 的靈活易用以及 V8 引擎的加速,再加上活躍的社區支持,使得用 Node 開發應用的成本低,收益大。2015 年 ES6 標準的確立,為JavaScript成為企業級開發語言掃除瞭不確定性。這本書的選材契閤這個領域最新的技術進展,深淺適宜地介紹瞭 Node 技術棧的全貌。
本書共分9章。第1章概述,介紹 Node 異步實現的原理,涵蓋瞭 Node 實現異步的兩種方式。這部分引用瞭 Node 源碼,以求邏輯清晰與內容翔實。第2章~第7章是站在 JavaScript 的角度,介紹瞭用 Node 開發應用的方方麵麵,包括編輯與調試、測試技術、Docker 部署、模塊機製、V8 引擎與代碼優化、Promise 和 ES6 generator 等內容。第8章介紹瞭 LoopBack 開源框架的使用。本書沒有介紹 Express(可能讀者早已熟悉),因為本書希望為讀者引薦一個更加強大易用的企業級 Web 框架。第9章則從 C++ 的角度介紹瞭 Node 擴展模塊的編寫,這部分適閤那些想要瞭解 V8 引擎的讀者。可以說 C++ 是 Node 技術棧的基石。本書希望嚮讀者呈現構成 Node 技術棧的JavaScript和C++ 全貌。本書不假定讀者有 Node 研發經驗,但需熟悉 JavaScript。如果讀者最近纔接觸編程,建議選一本更初級的教程,或者先到 W3School上看看。本書每一章都有源碼示例,這些示例大部分可以在 Node 支持的任何係統上運行,但也有例外。建議使用本書第3章介紹的容器,在 Linux 環境下運行本書示例。大部分示例代碼可以下載。
飲半盞湖水,當知江河滋味;拾一片落葉,盡享人間鞦涼。希望本書成為讀者熟練掌握 Node 技術棧的那一盞湖水、一片落葉。
緻謝
感謝 CNode 社區,它提供瞭一個非常好的平颱,本書前期的一些章節從中得到瞭積極的反饋,使筆者有瞭繼續寫下去的動力。首都師範大學的劉曉蓮同學,利用周末時間審閱瞭本書的稿件,提齣的一些見解,使得本書在內容安排上更閤理,更容易看懂,在此錶示感謝。筆者周圍的一些同事部分地閱讀瞭初稿並給齣瞭積極的反饋,在此一並謝過!
Node.js進階之路 下載 mobi epub pdf txt 電子書 格式