注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Node.js設(shè)計(jì)模式(第2版)

Node.js設(shè)計(jì)模式(第2版)

Node.js設(shè)計(jì)模式(第2版)

定 價(jià):¥108.00

作 者: [愛爾蘭] Mario Casciaro(馬里奧·卡西羅),[意大利] Luciano Mammino(盧西安諾·馬米諾) 著;馮康 等 譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì) 計(jì)算機(jī)/網(wǎng)絡(luò)

ISBN: 9787121335228 出版時(shí)間: 2018-02-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 436 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書通過(guò)大量示例形象地闡述了 Node.js 的哲學(xué)思想和設(shè)計(jì)模式。內(nèi)容主要由六部分組成:Node 核心思想、基礎(chǔ)設(shè)計(jì)模式、異步控制流模式、流編程、Node.js 的傳統(tǒng)設(shè)計(jì)模式和特有設(shè)計(jì)模式、通用編程的 Web 應(yīng)用以及處理復(fù)雜實(shí)際問(wèn)題的高級(jí)編程技巧。這是一本值得深入品讀的書籍,讀者若具備一些軟件設(shè)計(jì)的理論知識(shí)會(huì)有助于理解書中提出的概念,中級(jí) Node.js 開發(fā)者也會(huì)從本書有所收獲。本書尤其適用于已經(jīng)接觸過(guò) Node.js 并且想在效率、設(shè)計(jì)質(zhì)量和可擴(kuò)展性方面獲得提升的開發(fā)者。

作者簡(jiǎn)介

  Mario Casciaro,軟件工程碩士學(xué)位,軟件工程師,企業(yè)家,對(duì)技術(shù)、科學(xué)和開源知識(shí)充滿了熱情。他在IBM 開始了職業(yè)生涯,數(shù)年間先后參與很多不同產(chǎn)品的開發(fā),例如Tivoli EndpointManager、Cognos Insight 及SalesConnect。后來(lái),他加入了一個(gè)成長(zhǎng)中的SaaS 公司――D4HTechnologies,負(fù)責(zé)開發(fā)一款實(shí)時(shí)應(yīng)急管理的前沿產(chǎn)品?,F(xiàn)在,Mario 是Sponsorama.com 的聯(lián)合創(chuàng)始人兼CEO,這是一個(gè)幫助在線項(xiàng)目募集企業(yè)贊助資金的平臺(tái)。Mario 也是Node.js Design Patterns(Node.js 設(shè)計(jì)模式)第一版的作者。翻譯成員全部來(lái)自陸金所大前端團(tuán)隊(duì),也是公眾號(hào)大前端工程師的翻譯小組成員,他們?cè)诠娞?hào)與知乎專欄里面也有很多新的技術(shù)文章的翻譯,此次由寸志老師帶隊(duì),大家一邊在公司進(jìn)行nodejs項(xiàng)目的推廣實(shí)踐,一邊將實(shí)踐的心得注入到本書翻譯的理解,這是非常難得的結(jié)合,相信大家在讀的過(guò)程中能體會(huì)到這一點(diǎn)。

圖書目錄

第1 章歡迎來(lái)到Node.js 平臺(tái) 1
Node.js 的哲學(xué)思想2
小核心2
小模塊2
小接觸面3
簡(jiǎn)單和實(shí)用3
認(rèn)識(shí)Node.js 6 和ES2015 4
let 和const 關(guān)鍵字5
箭頭函數(shù)6
類語(yǔ)法8
增強(qiáng)的對(duì)象字面量10
Map 和Set 集合11
WeakMap 和WeakSet 集合13
模板字面量14
其他ES2015 特性14
Reactor 模式15
I/O 是緩慢的15
阻塞I/O 15
非阻塞I/O 16
事件多路分解器17
Reactor 模式簡(jiǎn)介19
Node.js-libuv 的非阻塞I/O 引擎20
Node.js 的秘訣21
總結(jié)21
第2 章Node.js 基礎(chǔ)設(shè)計(jì)模式 23
回調(diào)模式24
CPS(Continuation Passing Style) 24
同步或異步26
Node.js 回調(diào)約定31
模塊系統(tǒng)及其模式34
揭示模塊模式34
Node.js 模塊解釋35
模塊定義模式42
觀察者模式49
EventEmitter 類49
創(chuàng)建和使用EventEmitter 50
傳播錯(cuò)誤51
使任何對(duì)象可觀察51
同步和異步事件53
EventEmitter 與回調(diào)54
組合回調(diào)和EventEmitter 55
總結(jié)55
第3 章異步控制流模式之回調(diào)函數(shù) 56
異步編程的困難56
創(chuàng)建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)蜘蛛57
回調(diào)地獄59
使用純JavaScript 60
回調(diào)規(guī)則60
應(yīng)用回調(diào)規(guī)則61
順序執(zhí)行63
并行執(zhí)行68
有限制的并行執(zhí)行73
async 庫(kù)77
順序執(zhí)行78
并行執(zhí)行81
有限制的并行執(zhí)行81
總結(jié)83
xiv
第4 章異步控制流模式之ES2015+ 84
promise 84
什么是promise 85
Promises/A+ 實(shí)現(xiàn)87
Node.js 風(fēng)格函數(shù)的promise 化88
順序執(zhí)行90
并行執(zhí)行93
有限制的并行執(zhí)行93
在公共API 中暴露callback 和promise 95
generator 97
generator 基礎(chǔ)97
generator 的異步控制流100
順序執(zhí)行104
并行執(zhí)行106
有限制的并行執(zhí)行108
使用Babel 的async await 111
安裝和運(yùn)行Babel 112
比較113
總結(jié)114
第5 章流編程 115
流的重要性115
緩沖和流116
空間效率117
時(shí)間效率118
組合性121
開始學(xué)習(xí)流122
流的分類122
可讀流123
可寫流127
雙向流(Duplex stream) 132
變換流132
使用管道拼接流135
使用流處理異步流程137
順序執(zhí)行138
無(wú)序并行執(zhí)行139
無(wú)序有限制的并行執(zhí)行143
順序并行執(zhí)行145
xv
管道模式146
組合流146
復(fù)制流149
合并流150
復(fù)用和分解152
總結(jié)159
第6 章設(shè)計(jì)模式 160
工廠模式161
創(chuàng)建對(duì)象的通用接口161
一種封裝的機(jī)制162
構(gòu)建一個(gè)簡(jiǎn)單的代碼分析器164
可組合的工廠函數(shù)166
擴(kuò)展169
揭示構(gòu)造函數(shù)170
只讀事件觸發(fā)器171
擴(kuò)展172
代理模式173
實(shí)現(xiàn)代理模式的方法174
不同方法的比較176
創(chuàng)建日志記錄的寫入流176
生態(tài)系統(tǒng)中的代理模式――函數(shù)鉤子與面向行為編程(AOP) 178
ES2015 中的Proxy 對(duì)象178
擴(kuò)展180
裝飾者模式(Decorator) 180
實(shí)現(xiàn)裝飾者模式的方法181
裝飾一個(gè)LevelUP 數(shù)據(jù)庫(kù)182
擴(kuò)展185
適配器模式(Adapter) 185
通過(guò)文件系統(tǒng)API 來(lái)使用LevelUP 數(shù)據(jù)庫(kù)186
擴(kuò)展189
策略模式(Strategy) 189
支持多種格式的配置對(duì)象190
擴(kuò)展193
狀態(tài)模式193
實(shí)現(xiàn)一個(gè)基本的自動(dòng)防故障套接字194
模板模式(Template) 199
配置管理器模板199
xvi
擴(kuò)展201
中間件(Middleware) 202
Express 中的中間件202
設(shè)計(jì)模式中的中間件203
為?MQ 創(chuàng)建中間件框架204
在Koa 中使用生成器的中間件210
命令模式(Command) 213
靈活的設(shè)計(jì)模式214
總結(jié)218
第7 章連接模塊 220
模塊和依賴221
Node.js 中最常見的依賴221
內(nèi)聚和耦合222
有狀態(tài)的模塊222
連接模塊模式224
硬編碼依賴224
依賴注入229
服務(wù)定位器234
依賴注入容器239
連接插件243
插件作為包243
擴(kuò)展點(diǎn)245
插件控制與應(yīng)用程序控制的擴(kuò)展245
實(shí)現(xiàn)注銷插件248
總結(jié)256
第8 章通用JavaScript 的Web 應(yīng)用程序 257
與瀏覽器端共享代碼258
共享模塊258
Webpack 簡(jiǎn)介262
Webpack 的魔力263
Webpack 的優(yōu)點(diǎn)264
使用ES2015 和Webpack 265
跨平臺(tái)開發(fā)基礎(chǔ)267
運(yùn)行時(shí)代碼分支268
構(gòu)建時(shí)代碼分支269
模塊交換271
xvii
用于跨平臺(tái)開發(fā)的設(shè)計(jì)模式273
React 介紹274
第一個(gè)React 組件275
JSX 是什么277
配置Webpack 以實(shí)現(xiàn)JSX 轉(zhuǎn)換279
在瀏覽器中渲染280
React 路由庫(kù)281
創(chuàng)建通用JavaScript 應(yīng)用程序286
創(chuàng)建可用的組件287
服務(wù)端渲染289
通用渲染和路由293
通用數(shù)據(jù)檢索294
總結(jié)304
第9 章高級(jí)異步編程技巧 305
需要異步初始化的模塊305
規(guī)范解決方案306
預(yù)初始化隊(duì)列307
題外話311
異步批處理和緩存312
實(shí)現(xiàn)沒有緩存或批處理的服務(wù)器312
異步請(qǐng)求批處理314
異步請(qǐng)求緩存316
使用promise 進(jìn)行批處理和緩存319
運(yùn)行CPU 綁定的任務(wù)322
解決子集和問(wèn)題322
交叉使用setImmediate 325
使用多進(jìn)程328
總結(jié)335
第10 章擴(kuò)展與架構(gòu)模式 336
應(yīng)用程序擴(kuò)展介紹337
擴(kuò)展Node.js 應(yīng)用程序337
可擴(kuò)展性的三個(gè)維度337
克隆和負(fù)載均衡339
集群模塊340
處理有狀態(tài)通信348
使用反向代理進(jìn)行擴(kuò)展350
xviii
使用服務(wù)注冊(cè)表354
對(duì)等負(fù)載均衡360
分解復(fù)雜的應(yīng)用程序362
單體式架構(gòu)362
微服務(wù)架構(gòu)364
微服務(wù)架構(gòu)中的集成模式367
總結(jié)372
第11 章消息傳遞與集成模式 374
消息系統(tǒng)的基礎(chǔ)375
單向和請(qǐng)求/應(yīng)答模式375
消息類型376
異步消息和隊(duì)列377
對(duì)等或基于代理的消息378
發(fā)布/訂閱模式379
構(gòu)建簡(jiǎn)約的實(shí)時(shí)聊天應(yīng)用程序380
使用Redis 作為消息代理383
使用?MQ 對(duì)等發(fā)布/訂閱385
持久訂閱者389
管道和任務(wù)分配模式396
?MQ 扇出/扇入模式397
使用AMQP 實(shí)現(xiàn)管道和競(jìng)爭(zhēng)消費(fèi)者模式401
請(qǐng)求/應(yīng)答模式406
關(guān)聯(lián)標(biāo)識(shí)符406
返回地址410
總結(jié)415

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)