Node.js 設計模式, 3/e (Node.js Design Patterns - Design and implement production-grade Node.js applications using proven patterns and techniques, 3/e) Node.js Design Patterns - Third edition: Design and implement production-grade Node.js applications using proven patterns and techniques

Mario Casciaro , Mammino, Luciano 譯者 愛飛翔

買這商品的人也買了...

商品描述

本書中使用最好的辦法來實現各種設計模式以創造高效且健壯的Node.js應用程序。
本書首先介紹Node.js的基礎知識,包括異步事件驅動架構以及基本的設計模式。
然後,介紹怎樣用callback(回調)、Promise以及async/await機制來構建異步的控制流模式。
其次,介紹Node.js的stream(流)並演示stream的強大功能,使讀者能充分地利用這些功能。
本書分析了三大類設計模式,即創建型的設計模式、
結構型的設計模式以及行為型的設計模式,並介紹了怎樣在JavaScript語言及Node.js平台中充分運用這些模式。
最後,書中研究了一些比較高端的概念,例如Universal JavaScript、Node.js程序的擴展問題以及消息傳遞模式等,
以幫助讀者打造企業級的分佈式應用程序。
 本書適合已了解Node.js技術,同時希望在程序的效率、設計及可擴展程度方面有所提高的開發者。
閱讀本書需要讀者掌握Web應用程序、Web Service、數據庫與數據結構方面的開發技術。

作者簡介

Mario Casciaro

是一位軟件工程師,也是一位企業家。
他從小就喜歡搭建東西,比如用樂高積木搭建太空船,他還在自己的第一台電腦Commodore 64上寫程序。
讀大學之後,他在課餘時間大力開發各種興趣項目,
包括2006年在SourceForge上線的一款開源項目,這個項目大約有三萬行C++代碼。
作為軟件工程專業碩士的他畢業之後在IBM工作了幾年,一開始在羅馬,後來在Dublin Software Lab。
Casciaro現在一邊打理自己的軟件公司Var7 Technologies,
一邊在D4H Technologies擔任工程師主管,並為應急響應團隊開發軟件。
他特別崇尚實用與簡潔。

目錄大綱

目錄
前言
第1章 Node.js平台
1.1 Node.js開發理念
1.1.1 小核心
1.1.2 小模塊
1.1.3 小接觸面(小暴露面)
1.1.4 簡單實用
1.2 Node.js的工作原理
1.2.1 I/O是慢速操作
1.2.2 阻塞式I/O
1.2.3 非阻塞式的I/O
1.2.4 事件多路分離
1.2.5 reactor模式
1.2.6 Node.js的I/O引擎——Libuv
1.2.7 Node.js的全套結構
1.3 Node.js平台之中的JavaScript
1.3.1 放心地使用最新版的JavaScript
1.3.2 模塊系統
1.3.3 訪問操作系統中的各項服務
1.3.4 運行原生代碼
1.4 小結

第2章 模塊系統
2.1 為什麼需要模塊
2.2 JavaScript與Node.js的模塊系統
2.3 模塊系統及其模式
2.4 CommonJS模塊
2.4.1 自製的模塊加載器
2.4.2 定義模塊
2.4.3 module.exports與exports
2.4.4 require函數是同步函數
2.4.5 模塊解析算法
2.4.6 模塊緩存
2.4.7 循環依賴
2.5 定義模塊所用的模式
2.5.1 命名導出模式
2.5.2 函數導出模式
2.5.3 類導出模式
2.5.4 實例導出模式
2.5.5 通過monkey patching模式修改其他模塊或全局作用域
2.6 ECMAScript模塊(ESM)
2.6.1 在Node.js平台中使用ESM
2.6.2 命名導出模式與命名引入
2.6.3 默認導出與默認引入
2.6.4 混用命名導出與默認導出
2.6.5 模塊標識符
2.6.6 異步引入
2.6.7 詳細解釋模塊的加載過程
2.6.8 修改其他模塊
2.7 ESM與CommonJS之間的區別以及交互使用技巧
2.7.1 ESM是在嚴格模式下運行的
2.7.2 ESM不支持CommonJs提供的某些引用
2.7.3 在其中一種模塊系統裡面使用另一種模塊
2.8 小結

第3章 回調與事件
3.1 Callback(回調)模式
3.1.1 continuation-passing風格(CPS)
3.1.2 某個函數究竟是同步函數,還是異步函數
3.1.3 在Node.js裡面定義回調的慣例
3.2 Observer(觀察者)模式
3.2.1 EventEmitter
3.2.2 創建並使用EventEmitter
……
第4章 利用回調實現異步控制流模式
第5章 利用Promise與async/await實現異步控制流模式
第6章 用Stream編程
第7章 創建型的設計模式
第8章 結構型的設計模式
第9章 行為型的設計模式
第10章 用Universal JavaScript開發Web應用程序
第11章 高級技巧
第12章 用架構模式實現擴展
第13章 消息傳遞與集成模式