狼书(卷1):更了不起的Node.js
  • 推荐2
  • 收藏1
  • 浏览2.6K

狼书(卷1):更了不起的Node.js

狼叔 , 桑世龙 (作者) 

  • 书  号:978-7-121-35907-1
  • 出版日期:2019-07-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:孙奇俏
电子书 ¥55.30
购买电子书
纸质版 ¥79.00
Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,跨平台开发、API构建、Web应用开发等场景愈加常见,Node.js也成为大前端开发的必备“神器”。
本书以Node.js为主,讲解了Node.js的基础知识、开发调试方法、源码原理和应用场景,旨在向读者展示如何通过最新的Node.js和npm编写出更具前端特色、更具工程化优势的代码。本书还讲解了Node.js中相当核心且复杂的异步流程控制,展望了未来异步流程的发展方向,非常适合大前端领域及后端领域的测试、运维及软件开发从业者阅读、学习。
狼叔千日三卷始成,狼书之外再无Node!
狼叔(网名i5ting),Node.js 技术布道者,“Node全栈”公众号作者,全栈技术实践者。曾就职于多家知名IT企业,从事前端开发、后端开发、数据分析等工作,目前负责公司内的Node.js开发和基础框架开发工作。
前言


Node.js诞生于2009年,是由Joyent公司的员工Ryan Dahl开发完成的,之后Joyent公司一直扮演着Node.js孵化者的角色。由于诸多原因,Ryan于2012年离开了Node.js社区,随后在2015年,由于Node.js的贡献者们在ES6新特性集成问题上产生意见分歧,因此分裂出io.js。
io.js的分裂最终促成了2015年Node.js基金会的成立,同年Node.js v4.0顺利发布。Node.js基金会的创始成员包括Google、Joyent、IBM、Paypal、Microsoft、Fidelity和Linux基金会,创始成员将共同掌管过去由Joyent一家企业掌控的Node.js开源项目。此后,Node.js基金会发展得非常好,稳定地发布了5.x、6.x、7.x、8.x、9.x、10.x、11.x等多个版本,截止到本书完稿之时,最新版本已经是v11.14,最新的长期支持(LTS)版本是v10.15。
Node.js不是一门语言也不是一个框架,它是基于Chrome V8引擎的JavaScript运行时环境,同时结合libuv扩展了JavaScript功能,使得JavaScript能够支持浏览器DOM操作,同时具有只有后端语言才有的I/O、文件读写于操作数据库等能力,是目前使用最简单的全栈式环境。
本书内容
从整体上来说,本书以Node.js为主,首先介绍了Node.js的发展历史,然后简要概括了Node.js的特点和使用场景,之后讲解了Node.js实现过程中的新增内容(如语法、模块、单进程等)的基本用法。读者入门Node.js之后,可以继续从本书中了解Node.js的执行原理,深入解读源码。最后,本书还讲解了Node.js中非常核心且复杂的异步流程控制,对未来异步流程的发展方向进行了展望。
本书共分7章,每章的内容简介如下。
第1章 Node.js初识
本章介绍了Node.js的一些基础知识,包括什么是Node.js、Node.js和JavaScript的关系、Node.js的特点和应用场景等。
第2章 Node.js安装与入门
本章介绍了Node.js安装与使用的基本方法,包括3m(即nvm、nrm、npm)安装法、Node.js基础示例,以及编辑器和调试等内容。
第3章 更了不起的Node.js
本章更加详细地介绍了Node.js的各类应用场景,对Node.js的核心作用进行了概括与总结,还对如何成为全栈工程师提供了宝贵建议。
第4章 更好的Node.js
本章介绍了Node.js的各种写法,包括单线程与集群,以及各种优秀实践,包括ES语法、多模块管理器Lerna、npm的替代品Yarn等。
第5章 Node.js是如何执行的
本章介绍了Node.js的源码构建和调试过程,阐述了Node.js是如何执行的,还介绍了API的调用过程,以及事件循环机制。
第6章 模块与核心
本章介绍了Node.js中的CommonJS规范、SDK模块与核心技术,还对未来的ES6模块功能进行了预测与展望。
第7章 异步写法与流程控制
本章介绍了异步流程控制的演进过程、Node.js的核心异步写法,以及更好的异步流程控制机制,如Thunk、Promise、async函数等。
本书中的各章在内容上基本是相互独立的,因此各位读者可以挑选自己感兴趣的章节阅读。这本书是“狼书”系列的第1卷,还有第2卷和第3卷稍后会和各位读者见面,内容涉及Web应用和性能优化等,搭配阅读,效果更好。
目标读者
本书的目标读者有以下三类。
 正在学习JavaScript开发,对JavaScript语言有基本的了解和熟悉度,且希望能够了解JavaScript发展情况的人。
 正从事JavaScript开发相关工作,熟悉JavaScript的基本开发要领,在日常工作中经常接触Node.js,想要深入了解Web应用、BFF、API代理等内容,以进一步提升自我的Web工程师(此处不区分前端与后端)。
 具有极客精神,想要深入研究JavaScript语言及Node.js的全栈工程师。
同时,本书也适合正使用其他编程语言(如Go、PHP、Python、Ruby、Java等)进行Web开发的工程师阅读、学习。
阅读准备
要想运行本书中的示例,需要安装以下系统及软件。
 操作系统:推荐Linux,以及macOS X 10.9或以上版本,使用Windows操作系统可能会报错。
 浏览器:Google Chrome、Safari、Firefox、Internet Explorer 11、Windows Edge。
 运行环境:以Node.js 8.6为主。

目录

目录


第1章 Node.js初识 1
1.1 引子 1
1.2 JavaScript 7
1.3 什么是Node.js 9
1.3.1 Node.js概述 9
1.3.2 Node.js的特点 12
1.3.3 Node.js的应用场景 16
1.4 本章小结 18
第2章 Node.js安装与入门 19
2.1 安装Node.js 19
2.1.1 3m安装法 19
2.1.2 nvm 20
2.1.3 npm 26
2.1.4 nrm 32
2.1.5 从源码进行编译 35
2.1.6 状态理论 35
2.2 Hello Node.js! 36
2.2.1 Hello World 36
2.2.2 Hello CommonJS 37
2.2.3 Hello HTTP 38
2.3 编辑器与调试 41
2.3.1 IDE/编辑器 41
2.3.2 VSCode 42
2.3.3 调试 45
2.4 本章小结 52
第3章 更了不起的Node.js 53
3.1 架构升级 53
3.1.1 从LAMP到MEAN 54
3.1.2 前后端分离 55
3.1.3 页面即服务 58
3.1.4 场景决定选型 59
3.2 贯穿开发全过程 60
3.2.1 静态API 60
3.2.2 现代Web开发 63
3.2.3 后端开发 68
3.3 更多乐趣 78
3.3.1 更多应用场景 78
3.3.2 C/C++扩展 79
3.3.3 团队优化 80
3.3.4 全栈之路 81
3.4 本章小结 85
第4章 更好的Node.js 86
4.1 选择 86
4.1.1 语法可难可易 86
4.1.2 开发大型软件 90
4.1.3 特定场景下的快速开发 91
4.2 单线程会“死”吗 92
4.2.1 uncaughtException 93
4.2.2 异常捕获 94
4.2.3 forever 95
4.2.4 小集群:单台服务器上多个实例 95
4.2.5 大集群:多台机器 96
4.3 为Node.js正名 98
4.3.1 版本帝? 98
4.3.2 已无性能优势? 99
4.3.3 异步和回调地狱? 100
4.3.5 技术栈演进 101
4.4 更好的实践 102
4.4.1 ES.next 102
4.4.2 类型系统 110
4.4.3 更好的npm替代品——Yarn 111
4.4.4 多模块管理器Lerna 113
4.5 本章小结 114
第5章 Node.js是如何执行的 115
5.1 准备 115
5.1.1 编辑器 116
5.1.2 编译 117
5.1.3 调试 118
5.2 编译步骤 120
5.2.1 configure 120
5.2.2 make 130
5.2.3 make install 132
5.3 从入口开始 135
5.3.1 核心流程 137
5.3.2 构造process对象 139
5.3.3 LoadEnvironment 147
5.3.4 bootstrap_node.js 148
5.3.5 EventLoop启动方法 160
5.4 API调用过程 162
5.4.1 相关的引用 163
5.4.2 FSReqWrap 163
5.4.3 核心open方法 164
5.4.4 src/node_file.cc 164
5.5 事件循环机制 167
5.5.1 概览 167
5.5.2 生命周期 169
5.5.3 microtask和macrotask 170
5.5.4 process.nextTick(callback) 173
5.6 本章小结 175
第6章 模块与核心 176
6.1 CommonJS规范 176
6.1.1 简介 176
6.1.2 核心技术 181
6.2 Node.js 模块 189
6.2.1 从源码分析实现原理 189
6.2.2 从Node.js代码执行开始 191
6.2.3 深入理解模块 195
6.2.4 全局对象 205
6.2.5 Node.js模块详解 215
6.3 未来展望:ES模块 220
6.3.1 ES模块入门 221
6.3.2 模块导入 222
6.3.3 模块导出 222
6.3.4 ES模块示例 223
6.3.5 兼容性更好的@std/esm 224
6.4 本章小结 224
第7章 异步写法与流程控制 225
7.1 异步调用 226
7.1.1 异步与同步 226
7.1.2 浏览器中的异步 227
7.1.3 Node.js异步原理 227
7.1.4 API和示例 229
7.1.5 代码优化 231
7.2 Node.js自带的异步写法 236
7.2.1 错误优先的回调方式 236
7.2.2 EventEmitter 240
7.2.3 该选择哪种风格的写法 247
7.3 更好的异步流程控制 248
7.3.1 回调地狱 248
7.3.2 Thunk 252
7.3.3 Promise 254
7.3.4 Generator 276
7.3.5 async函数 282
7.4 本章小结 287

本书勘误

印次
  • 页码:29  •  行数:15  •  印次: 1

    不能通过require()来引入全局安装的包。

    Neal_Ding 提交于 2019/10/15 23:22:45
    孙奇俏 确认于 2019/11/8 9:16:02
  • 页码:42  •  行数:3  •  印次: 1

    vim/Emace 是emacs嘛?

    背锅侠 提交于 2019/7/11 21:16:39
    孙奇俏 确认于 2019/12/12 15:02:42
  • 页码:48  •  行数:2  •  印次: 1

    luanch.json -> launch.json

    幼稚完 提交于 2019/8/4 16:24:38
    孙奇俏 确认于 2019/12/12 15:01:34
  • 页码:71  •  行数:12  •  印次: 1

    做后端开发开发也是需要具有一定沉淀的

    背锅侠 提交于 2019/7/11 21:14:42
    孙奇俏 确认于 2019/7/16 11:14:29
  • 页码:113  •  行数:18  •  印次: 1

    方法2: 将所有模块都放到同一个仓库里 (Learn 建议)
    —>
    方法2: 将所有模块都放到同一个仓库里 (Lerna 建议)

    chnlin 提交于 2019/8/31 20:56:17
    孙奇俏 确认于 2019/12/12 15:00:01

读者评论

  • 正在看,但没看到随书源代码下载地址,作者有提供吗

    lordor发表于 2020/3/15 12:35:46
  • 有没计划发电子版?

    SamLau888发表于 2019/7/18 10:01:29
  • 讲promise的时候,如果能介绍一下util模块的promisify方法就好了

    望天发表于 2019/7/15 10:42:27

电子书版本

  • Epub

相关博文

  • Node.js十年,你大爷还是你大爷

    Node.js十年,你大爷还是你大爷

    管理员账号 2019-06-25

    Node.js从2009年诞生开始,到现在已有10岁,在这10年里,它的成长和成熟是大家有目共睹的。它因后端简化并发编程而被关注,因作为前端辅助开发工具而流行,因异步流程控制和回调地狱而被人诟病,因npm批量安装模块而被人敬仰。 ...

    管理员账号 2019-06-25
    439 0 0 0
  • 狼书之外再无Node!《狼书》现已全面开售!

    狼书之外再无Node!《狼书》现已全面开售!

    管理员账号 2019-07-04

    Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,跨平台开发、API构建、Web应用开发等场景愈加常见,Node.js也成为大前端开发的必备“神器”。 《狼书(卷1):更了不起的Node.js》作...

    管理员账号 2019-07-04
    2290 0 0 0

推荐用户

相关图书

写给大忙人的现代JavaScript

(德国)HORSTMANN, CAY S. (作者) 浙江阿里巴巴聚橙技术发展有限公司 (译者)

本书是一本简明的现代 JavaScript 教程,不仅涵盖函数式编程、JS 语法、JS 库等基础性内容,还介绍了国际化、异步编程、标准模块系统、元编程等较为复杂...

¥109.00

JavaScript 二十年

王译锋 (作者)

本书主要讲述了从 1995 年到 2015 年这20年间,JavaScript在创建、设计和演变方面所经历的过程。全书分为4个部分,每个部分都涵盖了 JavaS...

¥79.00

JavaScript语言精髓与编程实践(第3版)

周爱民 (作者)

本书详细讲述JavaScript作为一种混合式语言的各方面特性,包括过程式、面向对象、函数式和动态语言特性等,在动态函数式语言特性方面有着尤为细致的讲述。本书主...

¥144.00

狼书(卷2):Node.js Web应用开发

桑世龙 (作者)

目前市面的nodejs书籍基于0.10的为多,而基于最新4.X的非常少,本书是唯一一本基于node.js 4.0以上版本的书。而Koa是下一代node web的...

¥69.30

Koa与Node.js开发实战

Node.js 10已经进入LTS时代!其应用场景已经从脚手架、辅助前端开发(如SSR、PWA等)扩展到API中间层、代理层及专业的后端开发。Node.js在企...

¥49.00

Vue.js快跑

Callum Macrae (作者) 刘腾辉 (译者)

本书是用Vue.js构建Web应用的全方位指南。作者运用细致入微的讲解方式带你领略Vue.js的独特魅力,致力于协助你从零开始基于Vue.js创建一个Web应用...

¥69.00