Node.js进阶之路 版权信息
- ISBN:9787302456933
- 条形码:9787302456933 ; 978-7-302-45693-3
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>>
Node.js进阶之路 本书特色
本书内容涵盖了 Node.js高并发的原理、源码分析以及使用 Node.js开发应用所需要的不同层面
的技术实践。具体来讲,本书包括 Node.js异步机制(配以源码分析)、编辑与调试、测试技术、
Docker 部署、模块机制、V8 引擎与代码优化、Promise 和 ES6 Generator、LoopBack 开源框架、使
用 C 编写扩展、JavaScript严格模式、编码规范等内容。在 LoopBack 章节,本书详细介绍了使
用此框架开发企业级 Web 应用的步骤,帮助读者迅速掌握使用这个强大框架的诀窍。*后一章详
细介绍了编写不同类型的 C 模块的知识,并对堆内存管理等内容做了深入探讨。本书适合所有前端和后端的开发人员阅读。
Node.js进阶之路 内容简介
一线Node开发者数年实战经验总结,适合所有前端和后端的开发人员阅读本书内容涵盖Node 高并发的原理、源码分析以及使用 Node 开发应用所需要的不同层面的技术实践。具体包括 Node 异步机制(配以源码分析),编辑与调试,测试技术,Docker 部署,模块机制,V8 引擎与代码优化,Promise 和 ES6 generator ,LoopBack 开源框架,使用 C 编写扩展,JavaScript 严格模式,编码规范等内容。
Node.js进阶之路 目录
目 录
第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 代码覆盖率工具Istanbul·································································36
参考资料 ····························································································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
············································································ 635.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 理解执行过程 ···········································································1007.5 本章结语 ·················································································106第8章 LoopBack开源框架 ··························································1078.1 安装与运行 ··············································································1088.2 路由与权限控制 ········································································1138.3 添加新模型 ··············································································1218.4 初始化数据库 ···········································································1318.5 钩子机制 ·················································································1348.6 中间件 ····················································································1378.7 模型关系 ·················································································1398.8 使用cluster模式运行服务 ·····························································141参考资料 ···························································································
144
第9章 编写C 扩展 ·································································1459.1 使用C 编写扩展模块 ································································1469.1.1 导出对象 ··················································································
146
9.1.2 导出函数 ··················································································
149
9.1.3 导出构造函数 ············································································
151
9.2 线程模型与CPU密集型任务 ·························································1649.3 线程对象 ·················································································1649.4 本章结语 ·················································································170参考资料 ···························································································
170
附 录 ·····················································································171附录 A
JavaScript 严格模式 ·······························································172附录 B
JavaScript 编码规范 ······························································182参考资料 ···························································································
195
展开全部
Node.js进阶之路 作者简介
尤嘉,东南大学计算机硕士,从事软件研发工作多年,先后就职于奇虎和猎豹移动。做过基于 chromium 的浏览器,也从事过 WebKit 与 V8 方面的研发工作。目前从事 P2P 与区块链方面的项目研发。