Node.js设计模式-(第2版)
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121335228
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:32开
- 页数:415
- 出版时间:2018-03-01
- 条形码:9787121335228 ; 978-7-121-33522-8
本书特色
本书通过大量示例形象地阐述了 Node.js 的哲学思想和设计模式。内容主要由六部分组成:Node 核心思想、基础设计模式、异步控制流模式、流编程、Node.js 的传统设计模式和特有设计模式、通用编程的 Web 应用以及处理复杂实际问题的高级编程技巧。这是一本值得深入品读的书籍,读者若具备一些软件设计的理论知识会有助于理解书中提出的概念,中级 Node.js 开发者也会从本书有所收获。本书尤其适用于已经接触过 Node.js 并且想在效率、设计质量和可扩展性方面获得提升的开发者。
内容简介
• Node.js 的开发方式:如何使用正确的思维方式去解决一个 Node.js 开发设计问题。比如你会学习到,传统设计模式在 Node.js 开发中的不同体现,或者如何设计提供单一功能的模块。 • 一整套解决常见 Node.js 设计和编码问题的设计模式:你会学习到一整套像“瑞士军刀”一样功能多样、实用的设计模式,让你能即学即用,解决日常遇到的程序开发和设计问题。 • 如何编写模块化、高效率的 Node.js 程序:你将会理解开发大规模并且结构组织合理的 Node.js 程序的基本方法,并能运用这些方法去解决不属于现有设计模式范畴的新问题。 • 真实项目中用到的库和技术:LevelDb、Redis、RabbitMQ、ZMQ 及 Express 等用来作为示例阐述某个设计模式或者方法,让例子更加实用,对生态系统及它解决问题的方法有所了解。
目录
第1 章欢迎来到Node.js 平台 1
Node.js 的哲学思想 2
小核心 2
小模块 2
小接触面 3
简单和实用3
认识Node.js 6 和ES2015 4
let 和const 关键字 5
箭头函数 6
类语法 8
增强的对象字面量 10
Map 和Set 集合 11
WeakMap 和WeakSet 集合 13
模板字面量 14
其他ES2015 特性 14
Reactor 模式 15
I/O 是缓慢的 15
阻塞I/O 15
非阻塞I/O 16
事件多路分解器 17
Reactor 模式简介 19
Node.js-libuv 的非阻塞I/O 引擎 20
Node.js 的秘诀 21
总结 21
第2 章Node.js 基础设计模式 23
回调模式 24
CPS(Continuation Passing Style) 24
同步或异步 26
Node.js 回调约定 31
模块系统及其模式 34
揭示模块模式 34
Node.js 模块解释 35
模块定义模式 42
观察者模式 49
EventEmitter 类 49
创建和使用EventEmitter 50
传播错误 51
使任何对象可观察 51
同步和异步事件 53
EventEmitter 与回调 54
组合回调和EventEmitter 55
总结 55
第3 章异步控制流模式之回调函数 56
异步编程的困难 56
创建一个简单的网络蜘蛛 57
回调地狱 59
使用纯JavaScript 60
回调规则 60
应用回调规则 61
顺序执行 63
并行执行 68
有限制的并行执行 73
async 库 77
顺序执行 78
并行执行 81
有限制的并行执行 81
总结 83
第4 章异步控制流模式之ES2015 84
promise 84
什么是promise 85
Promises/A 实现 87
Node.js 风格函数的promise 化 88
顺序执行 90
并行执行 93
有限制的并行执行 93
在公共API 中暴露callback 和promise 95
generator 97
generator 基础 97
generator 的异步控制流 100
顺序执行 104
并行执行 106
有限制的并行执行 108
使用Babel 的async await 111
安装和运行Babel 112
比较 113
总结 114
第5 章流编程 115
流的重要性 115
缓冲和流 116
空间效率 117
时间效率 118
组合性 121
开始学习流 122
流的分类 122
可读流 123
可写流 127
双向流(Duplex stream) 132
变换流 132
使用管道拼接流 135
使用流处理异步流程 137
顺序执行 138
无序并行执行 139
无序有限制的并行执行 143
顺序并行执行 145
管道模式 146
组合流 146
复制流 149
合并流 150
复用和分解 152
总结 159
第6 章设计模式 160
工厂模式 161
创建对象的通用接口 161
一种封装的机制 162
构建一个简单的代码分析器 164
可组合的工厂函数 166
扩展 169
揭示构造函数 170
只读事件触发器 171
扩展 172
代理模式 173
实现代理模式的方法 174
不同方法的比较 176
创建日志记录的写入流 176
生态系统中的代理模式——函数钩子与面向行为编程(AOP) 178 ES2015 中的Proxy 对象 178
扩展 180
装饰者模式(Decorator) 180
实现装饰者模式的方法 181
装饰一个LevelUP 数据库 182
扩展 185
适配器模式(Adapter) 185
通过文件系统API 来使用LevelUP 数据库 186
扩展 189
策略模式(Strategy) 189
支持多种格式的配置对象 190
扩展 193
状态模式 193
实现一个基本的自动防故障套接字 194
模板模式(Template) 199
配置管理器模板 199
扩展 201
中间件(Middleware) 202
Express 中的中间件 202
设计模式中的中间件 203
为?MQ 创建中间件框架 204
在Koa 中使用生成器的中间件 210
命令模式(Command) 213
灵活的设计模式 214
总结 218
第7 章连接模块 220
模块和依赖 221
Node.js 中*常见的依赖 221
内聚和耦合 222
有状态的模块 222
连接模块模式 224
硬编码依赖 224
依赖注入 229
服务定位器 234
依赖注入容器 239
连接插件 243
插件作为包 243
扩展点 245
插件控制与应用程序控制的扩展 245
实现注销插件 248
总结 256
第8 章通用JavaScript 的Web 应用程序 257
与浏览器端共享代码 258
共享模块 258
Webpack 简介 262
Webpack 的魔力 263
Webpack 的优点 264
使用ES2015 和Webpack 265
跨平台开发基础 267
运行时代码分支 268
构建时代码分支 269
模块交换 271
用于跨平台开发的设计模式 273
React 介绍 274
React 组件 275
JSX 是什么 277
配置Webpack 以实现JSX 转换 279
在浏览器中渲染 280
React 路由库 281
创建通用JavaScript 应用程序 286
创建可用的组件 287
服务端渲染 289
通用渲染和路由 293
通用数据检索 294
总结 304
第9 章高级异步编程技巧 305
需要异步初始化的模块 305
规范解决方案 306
预初始化队列 307
题外话 311
异步批处理和缓存 312
实现没有缓存或批处理的服务器 312
异步请求批处理 314
异步请求缓存 316
使用promise 进行批处理和缓存 319
运行CPU 绑定的任务 322
解决子集和问题 322
交叉使用setImmediate 325
使用多进程 328
总结 335
第10 章扩展与架构模式 336
应用程序扩展介绍 337
扩展Node.js 应用程序 337
可扩展性的三个维度 337
克隆和负载均衡 339
集群模块 340
处理有状态通信 348
使用反向代理进行扩展 350
使用服务注册表 354
对等负载均衡 360
分解复杂的应用程序 362
单体式架构 362
微服务架构 364
微服务架构中的集成模式 367
总结 372
第11 章消息传递与集成模式 374
消息系统的基础 375
单向和请求/应答模式 375
消息类型 376
异步消息和队列 377
对等或基于代理的消息 378
发布/订阅模式 379
构建简约的实时聊天应用程序 380
使用Redis 作为消息代理 383
使用?MQ 对等发布/订阅 385
持久订阅者 389
管道和任务分配模式 396
MQ 扇出/扇入模式 397
使用AMQP 实现管道和竞争消费者模式 401
请求/应答模式 406
关联标识符 406
返回地址 410
总结 415
作者简介
Mario Casciaro,软件工程硕士学位,软件工程师,企业家,对技术、科学和开源知识充满了热情。他在IBM 开始了职业生涯,数年间先后参与很多不同产品的开发,例如Tivoli EndpointManager、Cognos Insight 及SalesConnect。后来,他加入了一个成长中的SaaS 公司——D4HTechnologies,负责开发一款实时应急管理的前沿产品。现在,Mario 是Sponsorama.com 的联合创始人兼CEO,这是一个帮助在线项目募集企业赞助资金的平台。Mario 也是Node.js Design Patterns(Node.js 设计模式)**版的作者。
翻译成员全部来自陆金所大前端团队,也是公众号大前端工程师的翻译小组成员,他们在公众号与知乎专栏里面也有很多新的技术文章的翻译,此次由寸志老师带队,大家一边在公司进行nodejs项目的推广实践,一边将实践的心得注入到本书翻译的理解,这是非常难得的结合,相信大家在读的过程中能体会到这一点。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0