百道网
 您现在的位置:Fun书 > Node.js设计模式(第2版)
Node.js设计模式(第2版)


Node.js设计模式(第2版)

作  者:(爱尔兰)Mario Casciaro(马里奥?卡西罗), (意大利)Luciano Mammino(卢西安诺?马米诺)

译  者:冯康

出 版 社:电子工业出版社

出版时间:2018年02月

定  价:108.00

I S B N :9787121335228

所属分类: 专业科技  >  计算机/网络  >  程序设计    

标  签:>程序设计  >计算机/网络  >其他  

[查看微博评论]

分享到:

TOP内容简介


本书通过大量示例形象地阐述了 Node.js 的哲学思想和设计模式。内容主要由六部分组成:Node 核心思想、基础设计模式、异步控制流模式、流编程、Node.js 的传统设计模式和特有设计模式、通用编程的 Web 应用以及处理复杂实际问题的高级编程技巧。这是一本值得深入品读的书籍,读者若具备一些软件设计的理论知识会有助于理解书中提出的概念,中级 Node.js 开发者也会从本书有所收获。本书尤其适用于已经接触过 Node.js 并且想在效率、设计质量和可扩展性方面获得提升的开发者。

TOP作者简介

Mario Casciaro,软件工程硕士学位,软件工程师,企业家,对技术、科学和开源知识充满了热情。他在IBM开始了职业生涯,数年间先后参与很多不同产品的开发,例如TivoliEndpoint

Manager、Cognos Insight 及 SalesConnect。后来,他加入了一个成长中的 SaaS 公司——D4HTechnologies,负责开发一款实时应急管理的前沿产品。现在,Mario 是 Sponsorama.com 的

联合创始人兼 CEO,这是一个帮助在线项目募集企业赞助资金的平台。Mario 也是 Node.js DesignPatterns(Node.js 设计模式)第一版的作者。

翻译成员全部来自陆金所大前端团队,也是公众号大前端工程师的翻译小组成员,他们在公众号与知乎专栏里面也有很多新的技术文章的翻译,此次由寸志老师带队,大家一边在公司进行nodejs项目的推广实践,一边将实践的心得注入到本书翻译的理解,这是非常难得的结合,相信大家在读的过程中能体会到这一点。


TOP目录

目录
第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
xiv 目录
第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
目录xv
管道模式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
xvi 目录
扩展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
目录xvii
用于跨平台开发的设计模式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
xviii 目录
使用服务注册表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

TOP书摘

TOP 其它信息

装  帧:平装-胶订

开  本:16开

纸  张:胶版纸

加载页面用时:116.2084