新書推薦:
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:HK$
98.6
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
《
虚拟资本:金融怎样挪用我们的未来
》
售價:HK$
77.3
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
|
編輯推薦: |
一线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 本地磁盘IO多线程模拟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 63
5.2 垃圾回收与内存控制 65
5.2.1 V8的垃圾回收算法 65
5.2.2 使用Buffer67
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(http:www.w3school.com.cnjsindex.asp)上看看。本书每一章都有源码示例,这些示例大部分可以在 Node 支持的任何系统上运行,但也有例外。建议使用本书第3章介绍的容器,在 Linux 环境下运行本书示例。大部分示例代码可以从 https:github.comclassfellownode-AdProgramming 下载。
饮半盏湖水,当知江河滋味;拾一片落叶,尽享人间秋凉。希望本书成为读者熟练掌握 Node 技术栈的那一盏湖水、一片落叶。
致谢
感谢 CNode 社区,它提供了一个非常好的平台,本书前期的一些章节从中得到了积极的反馈,使笔者有了继续写下去的动力。首都师范大学的刘晓莲同学,利用周末时间审阅了本书的稿件,提出的一些见解,使得本书在内容安排上更合理,更容易看懂,在此表示感谢。笔者周围的一些同事部分地阅读了初稿并给出了积极的反馈,在此一并谢过!
作者邮箱
classfellow@qq.com
|
|