登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書

『簡體書』Node.js设计模式(第三版)

書城自編碼: 3671807
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: [爱尔兰]马里奥·卡西罗,[意大利]卢西安诺·马米诺
國際書號(ISBN): 9787519855970
出版社: 中国电力出版社
出版日期: 2021-08-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 180.6

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
牛津世界历史研究指南
《 牛津世界历史研究指南 》

售價:HK$ 216.2
人间珍贵:澎湃夜读集3
《 人间珍贵:澎湃夜读集3 》

售價:HK$ 78.2
孩子一生的底气
《 孩子一生的底气 》

售價:HK$ 67.9
撒哈拉海计划:技术、殖民与气候危机
《 撒哈拉海计划:技术、殖民与气候危机 》

售價:HK$ 90.9
制造亚洲:一部地图上的历史
《 制造亚洲:一部地图上的历史 》

售價:HK$ 124.2
湘军史稿 华章大历史040
《 湘军史稿 华章大历史040 》

售價:HK$ 101.2
印度经济简史:1947-2022
《 印度经济简史:1947-2022 》

售價:HK$ 79.4
吞海.大结局
《 吞海.大结局 》

售價:HK$ 63.3

 

建議一齊購買:

+

HK$ 162.3
《C语言程序设计 现代方法 第2版·修订版》
+

HK$ 178.2
《零基础PHP学习笔记》
+

HK$ 86.3
《JavaScript语言精粹(修订版)》
+

HK$ 196.7
《Head First Go语言程序设计》
+

HK$ 142.6
《Go专家编程》
+

HK$ 123.8
《Go语言入门经典》
內容簡介:
本书中使用好的办法来实现各种设计模式以创造高效且健壮的Node.js应用程序。本书首先介绍Node.js的基础知识,包括异步事件驱动架构以及基本的设计模式。然后,介绍怎样用callback (回调)、Promise以及async/await机制来构建异步的控制流模式。其次,介绍Node.js的stream (流)并演示stream的强大功能,使读者能充分地利用这些功能。本书分析了三大类设计模式,即创建型的设计模式、结构型的设计模式以及行为型的设计模式,并介绍了怎样在JavaScript语言及Node.js平台中充分运用这些模式。后,书中研究了一些比较高端的概念,例如UniversalJavaScript、Node.js程序的扩展问题以及消息传递模式等,以帮助读者打造企业级的分布式应用程序。
本书适合已了解Node.js技术,同时希望在程序的效率、设计及可扩展程度方面有所提高的开发者。阅读本书需要读者掌握Web应用程序、WebService、数据库与数据结构方面的开发技术。
關於作者:
Mario Casciaro是一位软件工程师和企业家,对技术,科学和开源知识充满热情。Mario毕业于软件工程硕士学位,并开始了他在IBM的职业生涯。目前,Mario是Sponsorama.com的联合创始人兼首席执行官,该平台通过企业赞助来帮助在线项目筹集资金,还是版Node.js设计模式的作者。Luciano Mammino是一位软件工程师,出生于1987年。他从12岁开始使用父亲的旧Intel 386(仅提供DOS操作系统和qBasic解释器)进行编码。在获得计算机科学硕士学位之后,他主要是作为网络开发人员发展了自己的编程技能,主要是为意大利各地的公司和初创公司担任自由职业者。在担任CTO和Sbaam.com在意大利和爱尔兰的联合创始人长达三年的创业后,在Smartbox担任高级PHP工程师。他喜欢开发开源库并喜欢使用Symfony和Express这样的框架。
目錄
目录
前言
第1章 Node.js平台 1
1.1 Node.js开发理念 1
1.1.1 小核心 2
1.1.2 小模块 2
1.1.3 小接触面 (小暴露面) 3
1.1.4 简单实用 3
1.2 Node.js的工作原理 4
1.2.1 I/O是慢速操作 4
1.2.2 阻塞式I/O 4
1.2.3 非阻塞式的I/O 5
1.2.4 事件多路分离 6
1.2.5 reactor模式 8
1.2.6 Node.js的I/O引擎———Libuv 10
1.2.7 Node.js的全套结构 10
1.3 Node.js平台之中的JavaScript 11
1.3.1 放心地使用版的JavaScript 11
1.3.2 模块系统 12
1.3.3 访问操作系统中的各项服务 12
1.3.4 运行原生代码 13
1.4 小结 14
第2章 模块系统 15
2.1 为什么需要模块 15
2.2 JavaScript与Node.js的模块系统 16
2.3 模块系统及其模式 17
2.4 CommonJS模块 19
2.4.1 自制的模块加载器 19
2.4.2 定义模块 21
2.4.3 module.exports与exports 22
2.4.4 require函数是同步函数 23
2.4.5 模块解析算法 23
2.4.6 模块缓存 25
2.4.7 循环依赖 26
2.5 定义模块所用的模式 30
2.5.1 命名导出模式 30
2.5.2 函数导出模式 31
2.5.3 类导出模式 32
2.5.4 实例导出模式 33
2.5.5 通过monkeypatching模式修改其他模块或全局作用域 34
2.6 ECMAScript模块 (ESM) 35
2.6.1 在Node.js平台中使用ESM 36
2.6.2 命名导出模式与命名引入 36
2.6.3 默认导出与默认引入 39
2.6.4 混用命名导出与默认导出 40
2.6.5 模块标识符 41
2.6.6 异步引入 42
2.6.7 详细解释模块的加载过程 44
2.6.8 修改其他模块 51
2.7 ESM与CommonJS之间的区别以及交互使用技巧 55
2.7.1 ESM是在严格模式下运行的 55
2.7.2 ESM不支持CommonJS提供的某些引用 55
2.7.3 在其中一种模块系统里面使用另一种模块 56
2.8 小结 57
第3章 回调与事件 58
3.1 Callback (回调)模式 58
3.1.1 continuation-passing风格 (CPS) 59
3.1.2 某个函数究竟是同步函数,还是异步函数? 62
3.1.3 在Node.js里面定义回调的惯例 68
3.2 Observer(观察者)模式 72
3.2.1 EventEmitter 73
3.2.2 创建并使用EventEmitter 74
3.2.3 播报错误信息 75
3.2.4 让任何一个对象都能为监听器所观察 75
3.2.5 EventEmitter与内存泄露 77
3.2.6 同步事件与异步事件 78
3.2.7 EventEmitter与callback(回调)之间的对比 80
3.2.8 把回调与事件结合起来 81
3.3 小结 82
3.4 习题 82
第4章 利用回调实现异步控制流模式 84
4.1 异步编程所遇到的困难 84
4.1.1 创建简单的网页爬虫 85
4.1.2 callbackhell 87
4.2 涉及回调的编程技巧与控制流模式 88
4.2.1 编写回调逻辑时所应遵循的原则 89
4.2.2 运用相关的原则编写回调 89
4.2.3 顺序执行 92
4.2.4 平行执行 98
4.2.5 限制任务数量的平行执行 104
4.3 async库 112
4.4 小结 113
4.5 习题 113
第5章 利用Promise与async/await实现异步控制流模式 115
5.1 Promise 116
5.1.1 什么是Promise? 116
5.1.2 Promises/A 与thenable 119
5.1.3 PromiseAPI 119
5.1.4 创建Promise 121
5.1.5 把回调方案改写成Promise方案 122
5.1.6 顺序执行与迭代 124
5.1.7 平行执行 128
5.1.8 限制任务数量的平行执行 129
5.2 async/await 132
5.2.1 async函数与await表达式 133
5.2.2 用async/await处理错误 134
5.2.3 顺序执行与迭代 137
5.2.4 平行执行 139
5.2.5 限制任务数量的平行执行 141
5.3 无限递归的Promise解析链所引发的问题 145
5.4 小结 148
5.5 习题 149
第6章 用Stream编程 150
6.1 理解stream在Node.js平台中的重要作用 150
6.1.1 缓冲模式与流模式 151
6.1.2 流模式在空间占用方面的优势 152
6.1.3 流模式在处理时间方面的优势 154
6.1.4 stream之间的组合 157
6.2 开始学习Stream 160
6.2.1 流对象的体系结构 161
6.2.2 Readable流 (可读流) 161
6.2.3 Writable流 (可写流) 169
6.2.4 Duplex流 (双工流/读写流) 175
6.2.5 Transform流 (传输流) 176
6.2.6 PassThrough流 183
6.2.7 lazystream (惰性流) 188
6.2.8 用管道连接流对象 189
6.3 用stream实现异步控制流模式 193
6.3.1 顺序执行 194
6.3.2 无序的平行执行 196
6.3.3 无序且带有并发上限的平行执行模式 201
6.3.4 有序的平行执行 203
6.4 管道模式 205
6.4.1 组合stream 205
6.4.2 拆分stream (fork模式) 210
6.4.3 合并stream (merge模式) 211
6.4.4 多路复用与解多路复用 (mux/demux模式) 213
6.5 小结 220
6.6 习题 221
第7章 创建型的设计模式 222
7.1 Factory(工厂)模式 223
7.1.1 把对象的创建流程与该流程的实现方式解耦 223
7.1.2 强化封装效果 225
7.1.3 构建一款简单的codeprofiler(代码测评工具) 226
7.1.4 Node.js大环境之中的工厂模式 229
7.2 Builder(生成器/建造者)模式 229
7.2.1 实现URL对象生成器 233
7.2.2 Node.js大环境之中的Builder模式 237
7.3 RevealingConstructor模式 238
7.3.1 构建不可变的缓冲区 239
7.3.2 Node.js大环境之中的RevealingConstructor模式 242
7.4 Singleton (单例/单件)模式 243
7.5 管理模块之间的依赖关系 247
7.5.1 用Singleton模式管理模块之间的依赖关系 247
7.5.2 用DI(依赖注入)管理模块之间的依赖关系 250
7.6 小结 255
7.7 习题 256
第8章 结构型的设计模式 258
8.1 Proxy(代理)模式 258
8.1.1 怎样实现Proxy模式 259
8.1.2 创建带有日志功能的 Writable流 270
8.1.3 用Proxy实现ChangeObserver模式 271
8.1.4 Node.js大环境之中的Proxy模式 274
8.2 Decorator(修饰器)模式 274
8.2.1 实现Decorator模式的几种办法 275
8.2.2 用Decorator模式来修饰LevelUP数据库 279
8.2.3 Node.js大环境之中的Decorator模式 282
8.3 Proxy模式与Decorator模式之间的区别 283
8.4 Adapter(适配器)模式 284
8.4.1 通过fs式的API来使用LevelUP 284
8.4.2 Node.js大环境之中的Adapter模式 288
8.5 小结 289
8.6 习题 290
第9章 行为型的设计模式 291
9.1 Strategy(策略)模式 292
9.1.1 处理各种格式的配置信息 293
9.1.2 Node.js大环境之中的Strategy模式 297
9.2 State(状态)模式 297
9.3 Template(模板)模式 304
9.3.1 用Template模式重新实现配置管理器 305
9.3.2 Node.js大环境之中的Template模式 308
9.4 Iterator(迭代器)模式 308
9.4.1 iterator协议 309
9.4.2 iterable协议 311
9.4.3 在JavaScript语言内建的机制之中使用iterator与iterable 314
9.4.4 Generator(生成器) 316
9.4.5 asynciterator(异步迭代器) 321
9.4.6 asyncgenerator(异步生成器) 324
9.4.7 asynciterator(异步迭代器)与Node.js平台的stream (流) 325
9.4.8 Node.js大环境中的Iterator模式 326
9.5 Middleware(中间件)模式 327
9.5.1 Express里面的中间件 327
9.5.2 从模式的角度谈中间件 328
9.5.3 创建针对ZeroMQ的中间件框架 330
9.5.4 Node.js大环境之中的 Middleware模式 337
9.6 Command(命令)模式 337
9.6.1 Task模式 339
9.6.2 用复杂一些的办法实现Command 340
9.7 小结 344
9.8 习题 344
第10章 用UniversalJavaScript开发 Web应用程序 347
10.1 让Node.js与浏览器共用同一套代码 348
10.2 跨平台开发的基础知识 360
10.2.1 在运行程序的时候做代码分支 360
10.2.2 在构建程序的时候做代码分支 362
10.2.3 模块交换 (模块替换) 365
10.2.4 适用于跨平台开发的设计模式 366
10.3 React简介 367
10.3.1 React编程入门 369
10.3.2 用其他写法取代react.createElement 371
10.3.3 有状态的Reactcomponent 373
10.4 创建UniversalJavaScript应用程序 379
10.4.1 先构建一款只有前端逻辑的应用程序 380
10.4.2 给程序添加服务器端的渲染逻辑 388
10.4.3 让程序用异步的方式获取数据 394
10.4.4 在服务器端与浏览器端采用同一套方案获取数据 400
10.5 小结 415
10.6 习题 416
第11章 高级技巧 417
11.1 如何应对初始化过程中需要执行异步任务的组件 417
11.1.1 初始化过程中含有异步任务的组件所面对的问题 418
11.1.2 预初始化队列 (pre-initializationqueue) 420
11.1.3 Node.js大环境之中的解决方案 425
11.2 批量处理异步请求并缓存处理结果 426
11.2.1 什么叫作批量处理异步请求? 426
11.2.2 用更好的办法来缓存异步请求的处理结果 427
11.2.3 不带缓存或批处理机制的API服务器 428
11.2.4 利用Promise实现批处理与缓存 430
11.3 取消异步操作 435
11.3.1 采用基本方案创建可叫停的函数 435
11.3.2 把可叫停的异步函数所要执行的异步调用包装起来 437
11.3.3 利用生成器实现可叫停的异步函数 439
11.4 运行CPU密集型任务 443
11.4.1 解决subsetsum (子集合加总)问题 443
11.4.2 通过setImmediate分步执行 447
11.4.3 使用外部进程执行任务 450
11.4.4 用工作线程执行任务 458
11.4.5 在实际工作中处理CPU密集型任务 462
11.5 小结 463
11.6 习题 463
第12章 用架构模式实现扩展 465
12.1 浅谈如何扩展应用程序 466
12.1.1 扩展Node.js应用程序 466
12.1.2 从三个方面考虑可扩展能力 467
12.2 克隆与负载均衡 469
12.2.1 cluster模块 470
12.2.2 如何处理需要根据状态来执行的通信请求 480
12.2.3 用反向代理扩展应用程序 483
12.2.4 动态的水平扩展 489
12.2.5 端对端的负载均衡 497
12.2.6 用容器扩展应用程序 501
12.3 分解复杂的应用程序 511
12.3.1 单体式的架构 511
12.3.2 微服务架构 513
12.3.3 适用于微服务架构的集成模式 516
12.4 小结 522
12.5 习题 523
第13章 消息传递与集成模式 524
13.1 消息传递系统的基础知识 525
13.1.1 是单向通信,还是采用请求/响应模式来通信 525
13.1.2 消息的类型 526
13.1.3 异步消息传递机制、队列、流 (stream) 527
13.1.4 端对端的消息传递与基于中介的消息传递 529
13.2 Publish/Subscribe(发布/订阅)模式 530
13.2.1 构建一款极简的实时聊天程序 531
13.2.2 用Redis充当简单的messagebroker(消息中介) 535
13.2.3 用ZeroMQ实现端对端的Publish/Subscribe 538
13.2.4 用队列确保消息可靠地得到投递 542
13.2.5 用Stream (流)可靠地传递消息 552
13.3 任务分配模式 557
13.3.1 用ZeroMQ实现Fanout/Fanin模式 558
13.3.2 根据AMQP协议制作管道并实现CompetingConsumers
(互相竞争的消费者)模式 567
13.3.3 用Redis流实现任务分配模式 571
13.4 Request/Reply(请求/响应)模式 577
13.4.1 关联标识符 577
13.4.2 ReturnAddress(返回地址)模式 584
13.5 小结 591
13.6 习题 591

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.