Node.js调试指南 9787121341465
Node.js设计模式(第2版) 9787121335228
Web开发的身份和数据安全 深入浅出Node.js 9787519814205
Node.js调试指南(全彩)
Node.js实战作者力作,Node.js调试指南,涉及CPU、内存、代码、工具、APM、日志、监控、应用 预售商品
作者:赵坤出版社:电子工业出版社出版时间:2018年06月
定价 89元
版 次:1页 数:字 数:印刷时间:2018年06月01日开 本:16开纸 张:胶版纸包 装:平装-胶订是否套装:否国际标准书号ISBN:9787121341465
所属分类:
图书>计算机/网络>程序设计>其他
编辑推荐
√ Node.js经典《Node.js实战(双色)》及《Node.js实战(2季)》作者又一力作
√专门讲调试的Node.js书,资料少有,从CPU、内存、代码、工具、APM、日志、监控、应用8方面讲解
√大部分小节都会以一段经典的问题代码为例进行分析并给出解决方案
√ Node.js进阶参考书,适合有一定Node.js 开发经验的人阅读
√只讲干货,没废话
《Node.js调试指南(全彩)》从CPU、内存、代码、工具、APM、日志、监控、应用这8 个方面讲解如何调试 Node.js,大部分小节都会以一段经典的问题代码为例进行分析并给出解决方案。其中,1 章讲解CPU 相关的知识,涉及各种CPU 性能分析工具及火焰图的使用;2 章讲解内存相关的知识,例如Core Dump 及如何分析 heapsnapshot 文件;3 章讲解代码相关的知识,例如如何从代码层面避免写出难以调试的代码,并涉及部分性能调优知识;4 章讲解工具相关的知识,涉及常用的Node.js 调试工具和模块;5 章讲解APM(Application Performance Management)相关的知识,例如两个不同的应用程序性能管理工具的使用;6 章讲解日志相关的知识,例如如何使用Node.js 的async_hooks 模块实现自动日志打点,并结合各种工具进行使用;7 章讲解监控相关的知识,例如如何使用Telegraf InfluxDB Grafana 搭建一个完整的Node.js 监控系统;8 章讲解应用相关的知识,给出了两个完整的Node.js 应用程序的性能解决方案。
《Node.js调试指南(全彩)》并不适合Node.js 初学者,适合有一定Node.js 开发经验的人阅读。笔者倾向于将本书定位成参考书,每一小节基本独立,如果遇到相关问题,则可以随时翻到相应的章节进行阅读。
作者简介
赵坤,网名nswbmw,资深 Node.js开发者,开源项目Paloma、Mongolass和EverBlog作者,崇尚开源,热爱分享。
曾出版《Node.js实战(双色)》和《Node.js实战(2季)》。
1 章 CPU 1
1.1 理解perf 与火焰图(FlameGraph) 2
1.1.1 perf 2
1.1.2 火焰图 6
1.1.3 红蓝差分火焰图 8
1.2 使用 v8-profiler 分析 CPU 的使用情况 11
1.3 Tick Processor 及Web UI 16
1.3.1 Tick Processor 16
1.3.2 Web UI 21
2 章 内存 23
2.1 gcore 与llnode 24
2.1.1 Core 和 Core Dump 24
2.1.2 gcore 25
2.1.3 llnode 25
2.1.4 测试 Core Dump 26
2.1.5 分析Core 文件 27
2.1.6 --abort-on-uncaught-exception29
2.1.7 小结 30
2.2 heapdump 30
2.2.1 使用heapdump 30
2.2.2 Chrome DevTools 32
2.2.3 对比快照 34
2.3 memwatch-next 35
2.3.1 使用memwatch-next 35
2.3.2 使用Heap Diff 38
2.3.3 结合 heapdump 使用 40
2.4 cpu-memory-monitor 41
2.4.1 使用cpu-memory-monitor 41
2.4.2 cpu-memory-monitor 源码解读 43
3 章 代码 46
3.1 Promise 47
3.1.1 Promise/A 规范 48
3.1.2 从零开始实现 Promise 48
3.1.3 Promise 的实现原理 50
3.1.4 safelyResolveThen 52
3.1.5 doResolve 和 doReject 54
3.1.6 Promise.prototype.then 和 Promise.prototype.catch 55
3.1.7 值穿透 58
3.1.8 Promise.resolve 和 Promise.reject 60
3.1.9 Promise.all 61
3.1.10 Promise.race 62
3.1.11 代码解析 63
3.2 Async Await 69
3.2.1 例1 :async await 70
3.2.2 例2 :co yield 71
3.2.3 例3 :co yield* 72
3.2.4 例4 :co bluebird 73
3.2.5 从yield 转为yield* 遇到的坑 75
3.2.6 async bluebird 76
3.3 Error Stack 77
3.3.1 Stack Trace 78
3.3.2 Error.captureStackTrace80
3.3.3 captureStackTrace 在 Mongolass 中的应用 83
3.3.4 Error.prepareStackTrace84
3.3.5 Error.prepareStackTrace的其他用法 86
3.3.6 Error.stackTraceLimit88
3.3.7 Long Stack Trace 88
3.4 node@8 89
3.4.1 Ignition Turbofan 90
3.4.2 版本的对应关系 91
3.4.3 try/catch 91
3.4.4 delete 93
3.4.5 arguments 95
3.4.6 async 性能提升 97
3.4.7 不会优化的特性 98
3.5 Rust Addons 100
3.5.1 Rust 100
3.5.2 FFI 100
3.5.3 Neon 103
3.5.4 NAPI 108
3.6 Event Loop 110
3.6.1 什么是 Event Loop 110
3.6.2 poll 阶段 112
3.6.3 process.nextTick() 112
3.6.4 代码解析 113
3.7 处理 uncaughtException 120
3.7.1 uncaughtException 120
3.7.2 使用 llnode 121
3.7.3 ReDoS 122
4 章 工具 125
4.1 Source Map 126
4.1.1 uglify-es 126
4.1.2 TypeScript 128
4.1.3 source-map-support 的高级用法 129
4.2 Chrome DevTools 129
4.2.1 使用 Chrome DevTools 130
4.2.2 NIM 132
4.2.3 inspect-process 133
4.2.4 process._debugProcess133
4.3 Visual Studio Code 134
4.3.1 基本调试 134
4.3.2 launch.json 136
4.3.3 技巧 1——条件断点 138
4.3.4 技巧 2——skipFiles 139
4.3.5 技巧 3——自动重启 140
4.3.6 技巧 4——对特定操作系统的设置 142
4.3.7 技巧 5——多配置 142
4.3.8 总结 144
4.4 debug repl2 power-assert 144
4.4.1 debug 144
4.4.2 repl2 146
4.4.3 power-assert 148
4.5 supervisor-hot-reload 151
4.5.1 Proxy 151
4.5.2 用Proxy 实现 Hot Reload 153
4.5.3 supervisor-hot-reload155
4.5.4 内存泄漏问题 160
第5 章 日志 161
5.1 koa-await-breakpoint 162
5.1.1 koa-await-breakpoint 的实现原理 162
5.1.2 使用 koa-await-breakpoint 165
5.1.3 自定义日志存储 167
5.2 使用async_hooks 168
5.3 ELK 177
5.3.1 安装 ELK 177
5.3.2 使用 ELK 178
5.4 OpenTracing Jaeger 182
5.4.1 什么是 OpenTracing 182
5.4.2 什么是 Jaeger 184
5.4.3 启动 Jaeger 及Jaeger UI 184
5.4.4 使用 OpenTracing 及Jaeger 185
5.4.5 koa-await-breakpoint-jaeger187
5.5 使用Sentry 190
第6 章 APM 197
6.1 使用NewRelic 198
6.2 Elastic APM 201
6.2.1 什么是 Elastic APM 201
6.2.2 启动 ELK 203
6.2.3 启动 APM Server 203
6.2.4 使用 Elastic APM 203
6.2.5 错误日志 205
第7 章 监控 207
7.1 Telegraf InfluxDB Grafana(上) 208
7.1.1 Telegraf(StatsD) InfluxDB Grafana 简介 208
7.1.2 启动 docker-statsd-influxdb-grafana 208
7.1.3 熟悉 InfluxDB 209
7.1.4 配置 Grafana 210
7.1.5 node-statsd 211
7.1.6 创建 Grafana 图表 213
7.1.7 模拟真实环境 214
7.2 Telegraf InfluxDB Grafana(下) 217
7.2.1 Grafana ELK 217
7.2.2 监控报警 220
7.2.3 脚本一键生成图表 222
第8 章 应用 224
8.1 使用 node-clinic 225
8.2 alinode 227
8.2.1 什么是 alinode 227
8.2.2 创建 alinode 应用 228
8.2.3 安装 alinode 228
8.2.4 使用 alinode 诊断内存泄露 229
8.2.5 使用 alinode 诊断 CPU 性能瓶颈 232
书名:Node.js设计模式(第2版)
定价:108
ISBN:9787121335228
出版社:电子工业出版社
作者:马里奥·卡西罗
编号:1201656042
出版日期:2017-12-15
印刷日期:2018-03-01
版次:1
字数:5950
页数:415
D11章欢迎来到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
D12章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
D13章异步控制流模式之回调函数56
异步编程的困难56
创建一个简单的网络蜘蛛57
回调地狱59
使用纯 60
回调规则60
应用回调规则61
顺序执行63
并行执行68
有限制的并行执行73
async 库77
顺序执行78
并行执行81
有限制的并行执行81
总结83
xiv 目录
D14章异步控制流模式之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
D15章流编程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
D16章设计模式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
D17章连接模块220
模块和依赖221
Node.js 中*常见的依赖221
内聚和耦合222
有状态的模块222
连接模块模式224
硬编码依赖224
依赖注入229
服务定位器234
依赖注入容器239
连接插件243
插件作为包243
扩展点245
插件控制与应用程序控制的扩展245
实现注销插件248
总结256
D18章通用 的Web 应用程序257
与浏览器端共享代码258
共享模块258
Webpack 简介262
Webpack 的魔力263
Webpack 的优点264
使用ES2015 和Webpack 265
跨平台开发基础267
运行时代码分支268
构建时代码分支269
模块交换271
目录xvii
用于跨平台开发的设计模式273
React 介绍274
D1一个React 组件275
JSX 是什么277
配置Webpack 以实现JSX 转换279
在浏览器中渲染280
React 路由库281
创建通用 应用程序286
创建可用的组件287
服务端渲染289
通用渲染和路由293
通用数据检索294
总结304
D19章gao级异步编程技巧305
需要异步初始化的模块305
规范解决方案306
预初始化队列307
题外话311
异步批处理和缓存312
实现没有缓存或批处理的服务器312
异步请求批处理314
异步请求缓存316
使用promise 进行批处理和缓存319
运行CPU 绑定的任务322
解决子集和问题322
交叉使用setImmediate 325
使用多进程328
总结335
D110章扩展与架构模式336
应用程序扩展介绍337
扩展Node.js 应用程序337
可扩展性的三个维度337
克隆和负载均衡339
集群模块340
处理有状态通信348
使用反向代理进行扩展350
xviii 目录
使用服务注册表354
对等负载均衡360
分解复杂的应用程序362
单体式架构362
微服务架构364
微服务架构中的集成模式367
总结372
D111章消息传递与集成模式374
消息系统的基础375
单向和请求/应答模式375
消息类型376
异步消息和队列377
对等或基于代理的消息378
发布/订阅模式379
构建简约的实时聊天应用程序380
使用Redis 作为消息代理383
使用MQ 对等发布/订阅385
持久订阅者389
管道和任务分配模式396
MQ 扇出/扇入模式397
使用AMQP 实现管道和竞争消费者模式401
请求/应答模式406
关联标识符406
返回地址410
总结415
出版社: 中国电力出版社 ISBN:9787519814205版次:1商品编码:12298765包装:平装开本:16出版时间:2018-01-01用纸:胶版纸页数:204字数:238
产品特色
750-300.jpg
编辑推荐
作为Web和应用开发者、设计师、工程师和创作者,我们责无旁贷,自己必须掌握身份和数据安全方面的知识。如果Web开发者不知道如何在传输过程中正确隐蔽数据,不经意间就会敞开网站的安全大门。通过这本实用的手册,你将学到为何以及如何保护用户和数据的安全。
内容简介
本书深入探讨了构建保护数据和身份安全的接口所要掌握的概念、技术和编程方法论,而且兼顾可用性。你将学到如何弥补现有系统的漏洞、防御各种各样的攻击媒介,以及如何在天生不安全的环境中保障自身周全。
了解Web和应用安全的现状。
构建安全的密码加密方式,以及与各种密码攻击媒介斗争。
创建数字指纹,在浏览器、设备和配对设备中识别用户。
通过OAuth和OpenID Connect构建安全的数据传输系统。
使用其他的识别方法提供第二种身份验证方式。
加固Web应用,防止攻击。
使用SSL/TLS及同步和异步加密创建安全的数据传输系统。
作者简介
Jonathan LeBlanc获得过艾美奖,是一位软件工程师、技术作者和PayPal Global Developer Advocacy的主管。Jonathan主攻身份识别、授权和安全,硬件—Web通信,以及数据挖掘技术,而且关注的都是人机互联。
Tim Messerschmidt是Google Developer Relations的项目经理,主管德国、奥地利和瑞士(DACH)地区的业务。加入Google之前,他领导着PayPal和Braintree Developer Evangelism团队的欧洲、中东、非洲(EMEA)和亚太(APAC)区。
精彩书评
“这是一本适合初学者和有经验的开发者阅读的书。本书先通讲基本概念,随后便说明具体做法和内部机制,而且配备了大量有用且详细的示例代码片段。任何一名Web开发者都应该阅读本书。”
——Lenny Markus
PayPal工程团队高级经理
评分
评分
评分
评分
评分
评分
评分
评分
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有