好书推荐 好书速递 排行榜 读书文摘

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

Node.js 设计模式(第 2 版)
作者:【爱尔兰】Mario Casciaro(马里奥•卡西罗) / 【意大利】Luciano Mammino(卢西安诺•马米诺)
译者:冯康
出版社:电子工业出版社
出版年:2018-02
ISBN:9787121335228
行业:设计
浏览数:4

内容简介

《node.js设计模式(第2版)》通过大量示例形象地阐述了 Node.js 的哲学思想和设计模式。内容主要由六部分组成:Node 核心思想、基础设计模式、异步控制流模式、流编程、Node.js 的传统设计模式和特有设计模式、通用编程的 Web 应用以及处理复杂实际问题的高级编程技巧。

这是一本值得深入品读的书籍,读者若具备一些软件设计的理论知识会有助于理解书中提出的概念,中级 Node.js 开发者也会从本书有所收获。《node.js设计模式(第2版)》尤其适用于已经接触过 Node.js 并且想在效率、设计质量和可扩展性方面获得提升的开发者。

......(更多)

作者简介

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

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

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

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

......(更多)

目录

第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

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看