编辑推荐
一线Node开发者数年实战经验总结,适合所有前端和后端的开发人员阅读
本书内容涵盖Node 高并发的原理、源码分析以及使用 Node 开发应用所需要的不同层面的技术实践。
具体包括 Node 异步机制(配以源码分析),编辑与调试,测试技术,Docker 部署,模块机制,V8 引擎与代码优化,Promise 和 ES6 generator ,LoopBack 开源框架,使用 C++ 编写扩展,JavaScript 严格模式,编码规范等内容。
内容简介
本书内容涵盖了 Node.js高并发的原理、源码分析以及使用 Node.js开发应用所需要的不同层面的技术实践。具体来讲,本书包括 Node.js异步机制(配以源码分析)、编辑与调试、测试技术、Docker 部署、模块机制、V8 引擎与代码优化、Promise 和 ES6 Generator、LoopBack 开源框架、使用 C++ 编写扩展、JavaScript严格模式、编码规范等内容。在 LoopBack 章节,本书详细介绍了使用此框架开发企业级 Web 应用的步骤,帮助读者迅速掌握使用这个强大框架的诀窍。最后一章详细介绍了编写不同类型的 C++ 模块的知识,并对堆内存管理等内容做了深入探讨。
本书适合所有前端和后端的开发人员阅读。
作者简介
尤嘉,东南大学计算机硕士,从事软件研发工作多年,先后就职于奇虎和猎豹移动。做过基于 chromium 的浏览器,也从事过 WebKit 与 V8 方面的研发工作。目前从事 P2P 与区块链方面的项目研发。
内页插图
目录
第1章 Node异步编程范式 1
1.1 同步与异步的比较 2
1.2 Node异步的实现 7
1.2.1 HTTP请求——完全异步的例子 8
1.2.2 本地磁盘I/O——多线程模拟 17
1.3 事件驱动 18
参考资料 19
第2章 搭建自己的开发环境 21
2.1 Node的编译与安装 22
2.2 开发与调试 23
2.3 单元测试 29
2.3.1 Mocha 测试框架 29
2.3.2 TDD 风格 32
2.3.3 BDD 风格 34
2.3.4 生成不同形式的测试报告 35
2.3.5 代码覆盖率工具Istanbul36
参考资料 40
第3章 使用Docker部署Node服务 43
3.1 Docker基础 44
3.2 在Docker中运行Node 45
3.3 导出配置好的容器 47
参考资料 48
第4章 Node模块 49
4.1 程序入口 50
4.2 VM模块 50
4.3 模块加载与缓存 52
4.4 模块分类 54
4.5 正确导出模块 55
4.6 小心使用全局变量 56
第5章 V8引擎 57
5.1 Java Script代码的编译与优化 58
5.1.1 即时编译 58
5.1.2 隐藏类 59
5.1.3 内联缓存 60
5.1.4 优化回退 61
5.1.5 写出更具亲和性的代码 62
5.1.6 借助TypeScript 63
5.2 垃圾回收与内存控制 65
5.2.1 V8的垃圾回收算法 65
5.2.2 使用Buffer 67
5.2.3 避免内存泄漏 70
参考资料 77
V
第6章 Promise对象 79
6.1 Promise的含义 80
6.2 基本用法 80
6.3 then的链式写法 82
6.4 bluebird库 85
参考资料 86
第7章 用ES6 Generator解决回调金字塔 87
7.1 Node异步实现流程 88
7.2 用Generator实现异步调用与多并发 89
7.3 严格模式下运行 99
7.4 理解执行过程 100
7.5 本章结语 106
第8章 LoopBack开源框架 107
8.1 安装与运行 108
8.2 路由与权限控制 113
8.3 添加新模型 121
8.4 初始化数据库 131
8.5 钩子机制 134
8.6 中间件 137
8.7 模型关系 139
8.8 使用cluster模式运行服务 141
参考资料 144
第9章 编写C++扩展 145
9.1 使用C++编写扩展模块 146
9.1.1 导出对象 146
9.1.2 导出函数 149
9.1.3 导出构造函数 151
9.2 线程模型与CPU密集型任务 164
9.3 线程对象 164
9.4 本章结语 170
参考资料 170
附 录 171
附录 A JavaScript 严格模式 172
附录 B JavaScript 编码规范 182
参考资料 195
前言/序言
本书写给那些打算或者正在使用 Node.js(简称Node,后文均用此简称)创建 Web 应用的开发者。众所周知,JavaScript 的灵活易用以及 V8 引擎的加速,再加上活跃的社区支持,使得用 Node 开发应用的成本低,收益大。2015 年 ES6 标准的确立,为JavaScript成为企业级开发语言扫除了不确定性。这本书的选材契合这个领域最新的技术进展,深浅适宜地介绍了 Node 技术栈的全貌。
本书共分9章。第1章概述,介绍 Node 异步实现的原理,涵盖了 Node 实现异步的两种方式。这部分引用了 Node 源码,以求逻辑清晰与内容翔实。第2章~第7章是站在 JavaScript 的角度,介绍了用 Node 开发应用的方方面面,包括编辑与调试、测试技术、Docker 部署、模块机制、V8 引擎与代码优化、Promise 和 ES6 generator 等内容。第8章介绍了 LoopBack 开源框架的使用。本书没有介绍 Express(可能读者早已熟悉),因为本书希望为读者引荐一个更加强大易用的企业级 Web 框架。第9章则从 C++ 的角度介绍了 Node 扩展模块的编写,这部分适合那些想要了解 V8 引擎的读者。可以说 C++ 是 Node 技术栈的基石。本书希望向读者呈现构成 Node 技术栈的JavaScript和C++ 全貌。本书不假定读者有 Node 研发经验,但需熟悉 JavaScript。如果读者最近才接触编程,建议选一本更初级的教程,或者先到 W3School上看看。本书每一章都有源码示例,这些示例大部分可以在 Node 支持的任何系统上运行,但也有例外。建议使用本书第3章介绍的容器,在 Linux 环境下运行本书示例。大部分示例代码可以下载。
饮半盏湖水,当知江河滋味;拾一片落叶,尽享人间秋凉。希望本书成为读者熟练掌握 Node 技术栈的那一盏湖水、一片落叶。
致谢
感谢 CNode 社区,它提供了一个非常好的平台,本书前期的一些章节从中得到了积极的反馈,使笔者有了继续写下去的动力。首都师范大学的刘晓莲同学,利用周末时间审阅了本书的稿件,提出的一些见解,使得本书在内容安排上更合理,更容易看懂,在此表示感谢。笔者周围的一些同事部分地阅读了初稿并给出了积极的反馈,在此一并谢过!
Node.js进阶之路 下载 mobi epub pdf txt 电子书 格式