编辑推荐

  一线Node开发者数年实战经验总结,适合所有前端和后端的开发人员阅读
  《Node.js进阶之路》内容涵盖Node高并发的原理、源码分析以及使用Node开发应用所需要的不同层面的技术实践。
  具体包括Node异步机制(配以源码分析),编辑与调试,测试技术,Docker部署,模块机制,V8引擎与代码优化,Promise和ES6generator,LoopBack开源框架,使用C++编写扩展,JavaScript严格模式,编码规范等内容。

内容简介

  《Node.js进阶之路》内容涵盖了Node.js高并发的原理、源码分析以及使用Node.js开发应用所需要的不同层面的技术实践。具体来讲,《Node.js进阶之路》包括Node.js异步机制(配以源码分析)、编辑与调试、测试技术、Docker部署、模块机制、V8引擎与代码优化、Promise和ES6Generator、LoopBack开源框架、使用C++编写扩展、JavaScript严格模式、编码规范等内容。在LoopBack章节,《Node.js进阶之路》详细介绍了使用此框架开发企业级Web应用的步骤,帮助读者迅速掌握使用这个强大框架的诀窍。最后一章详细介绍了编写不同类型的C++模块的知识,并对堆内存管理等内容做了深入探讨。
  《Node.js进阶之路》适合所有前端和后端的开发人员阅读。

作者简介

  尤嘉,东南大学计算机硕士,从事软件研发工作多年,先后就职于奇虎和猎豹移动。做过基于chromium的浏览器,也从事过WebKit与V8方面的研发工作。目前从事P2P与区块链方面的项目研发。

目录

第1章Node异步编程范式1
1.1同步与异步的比较2
1.2Node异步的实现7
1.2.1HTTP请求——完全异步的例子8
1.2.2本地磁盘I/O——多线程模拟17
1.3事件驱动18
参考资料19
第2章搭建自己的开发环境21
2.1Node的编译与安装22
2.2开发与调试23
2.3单元测试29
2.3.1Mocha测试框架29
2.3.2TDD风格32
2.3.3BDD风格34
2.3.4生成不同形式的测试报告35
2.3.5代码覆盖率工具Istanbul36
参考资料40
第3章使用Docker部署Node服务43
3.1Docker基础44
3.2在Docker中运行Node45
3.3导出配置好的容器47
参考资料48
第4章Node模块49
4.1程序入口50
4.2VM模块50
4.3模块加载与缓存52
4.4模块分类54
4.5正确导出模块55
4.6小心使用全局变量56
第5章V8引擎57
5.1JavaScript代码的编译与优化58
5.1.1即时编译58
5.1.2隐藏类59
5.1.3内联缓存60
5.1.4优化回退61
5.1.5写出更具亲和性的代码62
5.1.6借助TypeScript63
5.2垃圾回收与内存控制65
5.2.1V8的垃圾回收算法65
5.2.2使用Buffer67
5.2.3避免内存泄漏70
参考资料77
V
第6章Promise对象79
6.1Promise的含义80
6.2基本用法80
6.3then的链式写法82
6.4bluebird库85
参考资料86
第7章用ES6Generator解决回调金字塔87
7.1Node异步实现流程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
附录AJavaScript严格模式172
附录BJavaScript编码规范182
参考资料195

前言/序言

  《Node.js进阶之路》写给那些打算或者正在使用Node.js(简称Node,后文均用此简称)创建Web应用的开发者。众所周知,JavaScript的灵活易用以及V8引擎的加速,再加上活跃的社区支持,使得用Node开发应用的成本低,收益大。2015年ES6标准的确立,为JavaScript成为企业级开发语言扫除了不确定性。这《Node.js进阶之路》的选材契合这个领域最新的技术进展,深浅适宜地介绍了Node技术栈的全貌。
  《Node.js进阶之路》共分9章。第1章概述,介绍Node异步实现的原理,涵盖了Node实现异步的两种方式。这部分引用了Node源码,以求逻辑清晰与内容翔实。第2章~第7章是站在JavaScript的角度,介绍了用Node开发应用的方方面面,包括编辑与调试、测试技术、Docker部署、模块机制、V8引擎与代码优化、Promise和ES6generator等内容。第8章介绍了LoopBack开源框架的使用。《Node.js进阶之路》没有介绍Express(可能读者早已熟悉),因为《Node.js进阶之路》希望为读者引荐一个更加强大易用的企业级Web框架。第9章则从C++的角度介绍了Node扩展模块的编写,这部分适合那些想要了解V8引擎的读者。可以说C++是Node技术栈的基石。《Node.js进阶之路》希望向读者呈现构成Node技术栈的JavaScript和C++全貌。《Node.js进阶之路》不假定读者有Node研发经验,但需熟悉JavaScript。如果读者最近才接触编程,建议选一本更初级的教程,或者先到W3School上看看。《Node.js进阶之路》每一章都有源码示例,这些示例大部分可以在Node支持的任何系统上运行,但也有例外。建议使用《Node.js进阶之路》第3章介绍的容器,在Linux环境下运行《Node.js进阶之路》示例。大部分示例代码可以下载。
  饮半盏湖水,当知江河滋味;拾一片落叶,尽享人间秋凉。希望《Node.js进阶之路》成为读者熟练掌握Node技术栈的那一盏湖水、一片落叶。
  致谢
  感谢CNode社区,它提供了一个非常好的平台,《Node.js进阶之路》前期的一些章节从中得到了积极的反馈,使笔者有了继续写下去的动力。首都师范大学的刘晓莲同学,利用周末时间审阅了《Node.js进阶之路》的稿件,提出的一些见解,使得《Node.js进阶之路》在内容安排上更合理,更容易看懂,在此表示感谢。笔者周围的一些同事部分地阅读了初稿并给出了积极的反馈,在此一并谢过!

其他推荐