《狼书:Node.js高级技术》[85M]百度网盘|pdf下载|亲测有效
《狼书:Node.js高级技术》[85M]百度网盘|pdf下载|亲测有效

狼书:Node.js高级技术 pdf下载

出版社 电子工业出版社京东自营官方旗舰店
出版年 2022-11
页数 390页
装帧 精装
评分 8.7(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供狼书:Node.js高级技术电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

√ Node.js首席布道师+垂直公号“Node全栈”经营者+CNode技术社区活跃贡献者,Node全域导师,狼叔奋笔千日献狼书。

√ 《狼书(卷1):更了不起的Node.js》+《狼书(卷2):Node.js Web应用开发》+《狼书(卷3):Node.js高级技术》,鸿篇巨制,狼书3卷终成Node.js红宝书。

√ 底层代码+工程实践+高级技巧,全线解构,完整贯通从入门、实践到原理的学习要诀。


内容简介

Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,跨平台开发、API构建、Web应用开发等场景愈加常见,Node.js也成为大前端开发的推荐“利器”。

本书聚焦于Node.js高级技术。第1章介绍如何编写npm模块,其中涉及对许多常用模块的解析。第2章介绍如何编写企业级Web开发框架,主要剖析了开发框架的流程。第3章介绍如何构建具有Node.js特色的服务,着重讲解了页面即服务的概念。第4章介绍服务器部署与性能调优的相关知识。第5章介绍TDD和BDD理念,以及如何编写测试用例,同时分享了笔者关于开源和自学的看法。

基于Node.js不断进阶,实现高级应用开发是符合技术趋势的,也是全栈工程师必须掌握的技能。因此,各位大前端领域及后端领域的测试、运维、软件开发从业者都适合阅读本书。

作者简介

桑世龙,狼叔(网名i5ting),现为阿里巴巴前端技术专家,去哪儿网前前端架构师,Node.js 技术布道者,领域头部公众号“Node全栈”运营者。曾就职于多家知名IT企业,从事前端开发、后端开发、数据分析等工作,目前负责公司内的Node.js开发和基础框架开发工作。

精彩书评

Node.js是为数不多的中国程序员不是跟从者而是开创者的技术领域。中国程序员在Node.js的布道方面贡献了很多,从推广Node.js社区到组织各种会议,当然也包括出版图书。对所有优秀的程序员来说,写书都是一件辛苦的事,所以愿意在这方面投入精力的程序员基本上都是有情怀的。狼叔花了多年时间写成了这本书,其中既包含Node.js进阶知识,也包含宝贵的工程实践,为所有从业者提供了参考,期待狼叔能够一直写下去。

——极客时间《重学前端》专栏作者,程邵非(winter)


多年前曾和狼叔聊过一个颇为枯燥的技术问题,当时他把那个问题解释得非常精彩,让我印象颇深。所以得知狼叔在写书时,我充满了期待。一方面,我相信狼叔一定能把严肃的技术问题讲得通俗易懂;另一方面,要想将Node.js生态讲得透彻,狼叔是优秀人选。

——ioredis作者、《Redis入门指南》作者,李子骅(luin)


《狼书》系列图书不是简单的Node.js使用手册,而是纵观Node.js发展历史、带你领略Node.js底层风采,并且能对你的Node.js知识体系进行查漏补缺的好书。在如今各式各样的Node.js图书中,这样的好书真的非常难得。

——《Node.js:来一打C++扩展》作者,死月


狼叔是国内比较知名的Node.js技术布道者,为Node.js在中国的发展做出了巨大的贡献。本书中既有对Node.js高阶开发技巧的详细介绍,也有对狼叔多年宝贵经验的深度总结,非常值得大家阅读、学习,建议各位持卷品读。

——ThinkJS框架作者,李成银


本书从多个使用场景深度探究了Node.js高阶技术。在Node.js发展迅猛、各种新生框架如雨后春笋般涌现之时,我们十分需要这样一本书。书中凝聚了狼叔在Node.js领域深耕多年的经验。通读全书后,相信读者一定能体会到Node.js高阶开发的精髓。

——TypeScript布道者、Midway框架作者,陈仲寅(张挺)


继《狼书》系列第1卷和第2卷之后,《狼书(卷3):Node.js高级技术》终于和大家见面了。这本书凝聚了狼叔多年以来的技术心血,也填补了目前市面上没有一套大而全的“Node.js红宝书”的缺憾,值得每一位Node.js开发者阅读。

——《Node.js调试指南》作者,赵坤(nswbmw)


这本书涵盖了Node.js高阶开发技巧,读者可以通过这本书了解如何开发npm模块,如何编写企业级Web框架,如何进行服务器部署和性能调优等相关内容,并将Node.js的精髓融会贯通。在这本书中,狼叔将带你进入更宽广的Node.js世界,照亮你的Node.js学习道路!

——GMTC(全球大前端技术大会)前主编,孟夕


这本书是狼叔花了多年时间打造的,书中融入了他丰富的开发经验和实践技巧,可以指导你深入研究Node.js,探索其中的奥秘,助你成为JavaScript全栈工程师。无论你是刚开启前端之旅的“小白”,还是有经验的高级工程师,都能从本书中获得经验和启发。

——《前端架构:从入门到微前端》作者,黄峰达(Phodal)


《狼书(卷3):Node.js高级技术》来了,让我们通过这本书跟狼叔一起“进化”吧!我们能从这本书中获得完善的Node.js高阶应用开发技巧,让自己真正“刚”起来!

——Trek.js作者,fundon


狼叔亲历了Node.js在国内的兴起、发展和成熟,他将眼中的Node.js核心知识完整融入本书。本书深入浅出地介绍了Node.js高级应用开发技巧,非常适合各个阶段的前后端工程师阅读、学习,从而构建出更了不起的Node.js应用。

——新浪移动前端技术专家、Daruk框架作者,付强(小爝)


作为同时在两地推动 NodeParty线下聚会的同仁和网友,我时常被狼叔对社区投入的热情所感染。狼叔的技术能力和技术视野是毋庸置疑的。现在看到狼叔在教育领域又有进步,我不禁感慨,希望大家不负狼叔多年的付出,从书中吸取精华内容,快速成长,成为社区建设的中坚力量,一起推动Node.js的未来发展!

——NodeParty开源基金会发起人、大搜车无线团队负责人,芋头


2015年10月,我便知道狼叔在筹备一本关于Node.js的书,不禁满心期待。虽然等待了多年,但看到《狼书》系列相继面世,我依然惊喜。《狼书》中汇集了许多Node.js发展历程中的精彩故事,还涵盖了很多Node.js的核心技术观点,相信对于读者而言定是一场知识盛宴!

——前端早早聊大会创始人,Scott


Node.js是我最喜欢的技术之一,因为它给JavaScript带来了无限可能。本书着重讲解了Node.js高级技术,能够带领你了解更全面、更了不起的Node.js进阶知识。如果你想提升自己的JavaScript编程能力,就从《狼书》系列开始吧!

——iView作者,梁灏


狼叔是国内知名的Node.js技术布道者和推广先驱,他将Node.js技术的精华提取出来并完全融入本书。这本书深入浅出,不仅解释了Node.js的高阶技术细节,而且教会你学习的方法,同时结合作者多年的实践心得和宝贵经验,可以让读者少走弯路,是一本真正的开发者之书。

——思否开发者社区CTO,祁宁


我曾与狼叔探讨过关于“业界对Node.js存在争议”的问题,当时狼叔展现出的那种破除前后端开发分工隔阂的大局观,以及以业务需求为导向去解决实际问题的思维方式,让我十分佩服。这本书是狼叔的心血结晶,相信大家都能从中获得技术提升,扩展自己的视野。

——谷歌开发者社区天津核心组织者,朱峰


学习Node.js技术,入门容易精通难。要想有所突破,需要花费大量的精力钻研,要经过大量实战的锤炼。在这个过程中,如果能有师傅言传身教,则会事半功倍。《狼书》正是能帮你快速得道的“师傅”,本书汇集了作者多年的经验,系统总结了Node.js项目中各种问题的高级解决技巧,是值得人手一本的书。

——《现代JavaScript库开发:原理、技术与实战》作者,颜海镜


坦白说我还没有看到本书全貌,但单看目录,我就已翘首盼成书。这本书显然更注重实践,重视Node.js技术的综合运用。我认为相比那些可以从社区中获取的纯理论知识,本书内容更加实用,实在难能可贵。期待你与我一起学习、品读。

——《前端架构师:基础建设与架构设计思想》作者,侯策


目录

第1章 自己动手写npm模块 1
1.1 基础技能 1
1.1.1 环境变量 2
1.1.2 Zsh 2
1.1.3 Vim 3
1.1.4 Ack 4
1.1.5 Autojump 5
1.1.6 Git和GitHub 5
1.1.7 查询文档 6
1.2 编写Node.js模块 6
1.2.1 初始化模块 6
1.2.2 普通模块 7
1.2.3 二进制模块 9
1.3 npm技巧 13
1.3.1 npm run 13
1.3.2 配置 13
1.3.3 钩子 15
1.3.4 npm link 16
1.3.5 自定义安装 16
1.3.6 模块瘦身 17
1.3.7 postinstall 17
1.3.8 路径 18
1.3.9 模块依赖图 20
1.4 实例讲解 22
1.4.1 kp 22
1.4.2 je 27
1.4.3 lazyclone 30
1.5 编写脚手架 31
1.5.1 初始化模块 32
1.5.2 CLI二进制模块 32
1.5.3 使用模板引擎 34
1.5.4 解析CLI参数和路径 35
1.5.5 npm发布 40
1.6 开源周边 40
1.6.1 持续集成 40
1.6.2 测试覆盖率 45
1.6.3 徽章 45
1.6.4 反向学习 46
1.7 推荐模块 46
1.7.1 debug 47
1.7.2 GitBook 48
1.7.3 colors和chalk 49
1.7.4 mkdirp 50
1.7.5 shelljs 50
1.7.6 moment 51
1.7.7 LRU缓存 52
1.7.8 semver 53
1.7.9 xtend 55
1.7.10 require-directory 56
1.7.11 yargs 57
1.8 本章小结 59
第2章 自己动手编写企业级Web开发框架 60
2.1 特色Web框架 60
2.1.1 LoopBack 61
2.1.2 Nest 63
2.1.3 ThinkJS 66
2.1.4 Egg.js 69
2.1.5 Next.js 70
2.1.6 Redwood 72
2.1.7 strapi 76
2.2 自己动手写框架 78
2.2.1 基础知识 78
2.2.2 生成项目 81
2.2.3 添加Mongoose 91
2.2.4 添加MVC目录 96
2.2.5 庖丁解Views 103
2.2.6 脚手架 112
2.2.7 静态API模拟 114
2.2.8 更多实践 122
2.3 本章小结 127
第3章 构建具有Node.js特色的服务 128
3.1 服务概览 128
3.1.1 架构演变 128
3.1.2 从大而全到小而美 129
3.1.3 微服务应用 131
3.1.4 BFF中间层 134
3.1.5 SFF托管 137
3.2 使用Node.js优化页面渲染 140
3.2.1 BigPipe 140
3.2.2 服务器端渲染(SSR) 150
3.2.3 渐进式Web应用(PWA) 153
3.2.4 同构开发 158
3.3 页面即服务 162
3.3.1 页面独立 162
3.3.2 模块拆分 164
3.3.3 BigView 165
3.3.4 API Proxy 175
3.3.5 源码说明 176
3.4 使用Node.js开发RPC服务 178
3.4.1 RPC原理 178
3.4.2 通信层协议设计 179
3.4.3 如何实现RPC通信协议 180
3.4.4 DNode 181
3.4.5 Senaca 182
3.4.6 Moleculer 185
3.4.7 通用RPC 189
3.4.8 服务发现与治理 190
3.4.9 典型用法 192
3.5 使用Node.js开发独立的API层 193
3.5.1 GraphQL 193
3.5.2 Micro框架 197
3.5.3 API网关 197
3.5.4 在线服务 199
3.6 本章小结 199
第4章 服务器部署与性能调优 200
4.1 服务器部署 200
4.1.1 服务器选购 201
4.1.2 手动部署 204
4.1.3 通过Docker部署 211
4.1.4 自动部署 224
4.1.5 APM与监控 231
4.2 性能调优 239
4.2.1 基础知识 239
4.2.2 立体分析 246
4.2.3 深度性能调优 250
4.3 分析Easy-monitor 260
4.4 本章小结 262
第5章 测试、开源与自学 263
5.1 测试入门 264
5.1.1 什么是测试 264
5.1.2 TDD和BDD 265
5.1.3 最小化问题 268
5.1.4 Baretest 269
5.1.5 TAP和Tape 271
5.1.6 Mocha 274
5.1.7 Jest 278
5.2 测试进阶 283
5.2.1 测试的好处 283
5.2.2 红到绿工作流 284
5.2.3 Cucumber 285
5.2.4 Spy、Stub和Mock 288
5.2.5 持续集成 291
5.2.6 如何编写测试框架 292
5.2.7 如何打造开源项目 293
5.2.8 进一步学习TypeScript 294
5.3 开源带来的机会和思考 310
5.3.1 Clipanion 310
5.3.2 机会与挑战 312
5.3.3 敏感且会学 313
5.3.4 成就更好的自己 313
5.4 本章小结 314

前言/序言

推荐序1

提起国内的Node.js布道师,我脑海中出现的第一个名字就是狼叔(i5ting)。

狼叔从2015年开始活跃于CNode社区,累计发表文章200余篇,主题丰富多样——Node.js底层原理、npm目录结构改进、前后端分离实践、全栈工程师之路等。这几年间,狼叔同时运营着自己的微信公众号“Node全栈”,笔耕不辍,源源不断地将最新鲜、最“硬核”的资讯分享给国内的开发者们。不得不说,他的这种乐于分享的精神,实属难得。

我与狼叔也是在2015年相识的。2015年是Node.js的普及度呈爆发式增长的一年,但那一年的Node.js还远远谈不上被广泛使用。当时我在阿里巴巴数据平台任职,我们所做的部分项目的JavaScript压缩工具和测试覆盖率工具还是用Java实现的,这在现在看来可以说是非常匪夷所思的,JavaScript工作流中的工具竟然还有用Java而不是用Node.js实现的!

时过境迁,转眼多年过去,JavaScript在大前端领域遍地开花,Node.js也已经被广泛应用于Web开发的方方面面,成了Web开发流程中不可或缺的部分。大家不再怀疑Node.js能不能用,而是开始思考该如何用Node.js实现我们想要的功能。

技术的好与坏,不仅仅在于技术本身具有什么优势。布道如果做得不好,酒香也怕巷子深。技术的进步与受众群体的反馈是相互促进的。Node.js在国内逐渐生根发芽的这几年,狼叔无疑是推广该技术的中坚力量。

经过多年的积累和沉淀,狼叔带着他的新书与大家见面了。这本书内容循序渐进、概念清晰明了、技术描述有点有面,是一本理论架构完整且实战案例典型的好书!相信各位读者能够从中获益!

最后,衷心祝愿Node.js发展得越来越好,也祝愿狼叔的布道事业蒸蒸日上!

CNode社区管理员,alsotang


推荐序2

在狼叔邀请我为他的新书写推荐的时候,我的内心是忐忑的,因为我对Node.js并不熟悉,不是这方面的专家。但对于狼叔我是了解的,同为技术社区推动者和文字爱好者,我深知在国内要写一本严肃的技术图书是一件多么吃力不讨好的事情。正因如此,狼叔的这本书就更值得推荐给正在学习Node.js的工程师们。

2009年,Node.js刚刚诞生,那时我就接触到了它。后来,Node.js的迭代和进步之快完全超出了我的预期,它变得越来越好用,逐渐成为全栈工程师的首选。这样的结果离不开强大、活跃的Node.js社区和无私的Node.js贡献者们的付出,而狼叔就是国内Node.js贡献者的代表。

有了Node.js,前端工程师也可以编写后端程序,并成为手机应用的跨平台开发主力。客户端、前端和服务器端已呈现出大统一趋势。在我自己熟悉的Web服务器开发领域,可以说Nginx内置的njs就是冲着替代OpenResty这一目标迅速发展的。

在这种技术趋势下,学习JavaScript和Node.js无疑是一个性价比很高的选择。这样一来,我们便可以打通从移动应用、Web应用到服务器端接口的整条链路。而学习一门技术最好的方式,就是选择一本好书。

写一本好书对作者的要求很高——技术功底扎实只是基础,更要有丰富的项目经验、深厚的文字功底和洞察读者心理的能力。平日里像“诗人”一样的狼叔绝对是为数不多的具备上述能力的“牛人”,所以我相信他写的书也一定是一本好书。希望大家能通过这本好书提升自己的技术水平。

学习从来不是一件容易的事,但却是一件快乐的事,共勉。

支流科技创始人& CEO、Apache PPMC,温铭


推荐序3

1995年,Brendan Eich花了10天时间开发出了一门脚本语言,该语言可用于弥补Java Applets的不足,随后Marc Andreessen将这门语言命名为Mocha。Mocha的最初定位是,服务于测试脚本编写人员、业余编程爱好者、设计师。

同年5月,Mocha被集成到了Netscape浏览器中,不久后其被更名为LiveScript。同年年底,Netscape公司和Sun公司达成协议并获得了Java商标的使用权,于是LiveScript正式被更名为JavaScript。

有人觉得,正是因为更名为JavaScript才使这门语言成了浏览器执行的唯一语言。但时至今日,JavaScript已经不仅仅局限于实现网页特效了,而真正发展成了一门全功能的编程语言。

2009年,Joyent公司的一名软件工程师Ryan Dahl开发了Node.js,这是一个基于Chrome V8引擎的JavaScript运行时环境。Node.js使得JavaScript拥有了操作文件系统、I/O、网络,甚至数据库的能力。虽然Node.js不是第一个将JavaScript带离浏览器的工具,但它无疑是最成功的一个。

如今,Node.js社区已经成了最活跃的编程社区之一,其npm的包数量也已经超越了Java的Maven、Ruby的Gem、PHP的Composer。

狼叔是国内最早一批的Node.js使用者,也是Node.js社区最活跃的布道者之一。多年前狼叔来天津创业,我有缘与他结识。在那之前我就已经拜读过狼叔的文章,而当时狼叔就曾与我谈起要写一本关于Node.js的书。说来也巧,Node.js于2009年发布,而《金刚狼》系列电影也于2009年开始上映。《金刚狼》系列电影一共3部,而狼叔的《狼书》系列图书也有3卷,希望《狼书》系列图书能如《金刚狼》系列电影一样受到欢迎。

目前Node.js发展十分迅速,但很大一部分使用者是前端开发人员。和Java、Python、Ruby等后端语言对比,尤其在图书出版方面,Node.js还需要持续深入,而《狼书》系列图书的面世正好弥补了这一方面的不足——第1卷系统全面地介绍Node.js基础,第2卷着重介绍Node.js Web应用开发技能,第3卷则侧重于Node.js的高级应用。如果你想深入学习Node.js的核心原理并掌握使用Node.js开发大型系统的要诀,那么这套书非常值得你精读。

Flarum中文社区创始人,迷渡(justjavac)


推荐序4

俗话说,十年磨一剑,慢工出细活。狼叔撰写的《狼书》系列图书很好地诠释了这两句话。

众所周知,狼叔是Node.js布道者、“Node全栈”微信公众号的作者,他活跃于CNode社区,组织了不少线下Node.js沙龙,同时常作为讲师在各种技术交流会上进行分享,为Node.js在国内的推广做出了很大的贡献。我觉得这是一种情怀,也是一种责任。当你爱上一件事,你就会全情投入。

Node.js的出现在很大程度上满足了前端工程师想要探索更广阔的编程世界的愿望,为前端工程师提供了更好的了解后端工作的机会,对于前后端协同而言具有巨大价值。十几年时间,Node.js几经波折,但这并不妨碍它快速发展,如今它已经成为最流行的技术之一。

近些年,不少大型互联网公司都开始基于Node.js构建应用。我和狼叔在去哪儿网相识,平时和他对话或闲聊,最后总能聊到Node.js上,我能深切地感受到他对Node.js的热爱。那时候的狼叔正在努力为去哪儿网建设更完善的Node.js基础设施,他的努力为去哪儿网注入了新鲜活力,加快了Node.js在机票购买业务中的落地。

《狼书》系列图书正是狼叔Node.js情怀的最终寄托。这本第3卷聚焦于Node.js高级技术,几经雕琢终于面世,很好地承载了狼叔对Node.js的热爱,将开发npm模块、编写企业级Web开发框架、服务器部署、测试、开源等热门话题娓娓道来,就像一杯陈酒,越品越有味道。我相信每一位拿到此书的读者都会有不同的收获,无论你是初入前端领域的“小白”,还是深耕多年的“老手”。

美团研究员,杜瑶


自序

《狼书》系列从2015年10月开始撰写。

在那之前,我还在天津创业,顶着CTO的头衔干着各种最基础的编码工作。由于公司在天津的位置很偏僻,所以公司招人成了一个大问题。更要命的是,创始人没有工资可拿,现在想想只能说是情怀在支撑我吧。

公司招人不便,那就只能想办法把人才从北上广拉到天津,于是我就动了扩大技术影响力的心思——我开始在CNode社区上发帖,后面慢慢尝试做“Node全栈”微信公众号,效果还不错。我还记得CNode社区管理员、知名Node.js开发者alsotang曾评论过我的一篇文章,说我是Node.js布道者。当时我臭美了很久,之后便自然而然地走上了Node.js布道之路。

2015年,我结婚了,财权上交,发觉生活窘迫,又不好意思向老婆要钱,于是便开始在网上教授VSCode,之后我又和极客邦旗下的StuQ合作讲课,获得收入的同时又可以进一步扩大技术影响力。而技术影响力扩大的体现就是,我被出版社的编辑发现了。由于早有布道的心思,自然希望能够出一本书,于是我便开始了写书之旅。

可是写书从来都不是一件容易的事。阅历浅,写不来;无恒心,写不来。从我萌生写书的想法至今,Node.js稳定、高效地发布了多个版本,国内外的Node.js使用率也渐渐达到了一个前所未有的高度。这些年里,很多朋友催书,以至于我经常在演讲中“自黑”:“我的书从Node.js 4.0版本写到Node.js 8.0版本,然而还没有写完。”出版社约稿时,Node.js才刚刚发布4.0版本;2019年年初《狼书(卷1):更了不起的Node.js》撰写完成时,Node.js发布了11.10版本;到2022年10月,Node.js版本已经来到18.10。

最终,本书确定以Node.js 8.0为核心版本。虽然后面Node.js的更新版本里又增加了新功能,但整体来看,Node.js的API设计得非常好,几乎都是向后兼容的,所以即使是18.10版本在使用上和8.0版本的差别也不大。

2019年7月,《狼书(卷1):更了不起的Node.js》和大家见面了。2019年12月,《狼书(卷2):Node.js Web应用开发》出版。原以为,《狼书(卷3):Node.js高级技术》也会在不久之后与大家见面,却未曾想2020年有很多突如其来的变化,影响了这本书的出版计划。经过我的深思熟虑,觉得不如趁此机会将书中原本的陈旧内容推翻,再加上一些新的感悟。于是,我又开始重新创作,删删改改,迭代了一轮又一轮……很抱歉,时隔三年,《狼书(卷3)》才与各位读者见面。

人生之美好就是在苦难之后能够获得成果。写书的过程是痛苦的,但也让我对“成就别人才能成就自己”这句话有了更深刻的认识。最开始写书是为了布道,希望更多人能从中受益,没想到最先受益的是自己。通过长时间的积累,我完善了自己的知识体系,受益匪浅。通过与CNode社区、出版社的编辑及Node.js爱好者们交流,我有了更好的学习机会。通过写书、演讲、组织社区活动,我有了更丰富的人生经历。

以前见到图书的前言中总有致谢话语,还以为只是出版“套路”。然而今时今日,历经多年的写作,我确确实实要感谢很多人。

感谢我的家人,写书会牺牲很多陪伴家人的时间,感谢他们的理解和支持。最难过的是周一到周五,只能看老婆通过微信发来的宝宝的视频,一遍一遍地看,一遍一遍地想哭。

感谢所有推荐本书及为本书进行技术审校的专家们,若没有他们的帮助,这本书恐怕无法以最佳状态与各位读者见面。他们的宝贵建议使得本书的内容不至于空洞,也让我受益良多。

感谢博文视点的张春雨编辑和孙奇俏编辑,他们一次次地叮嘱我、鼓励我,面对面指导我如何规范写作,这种耐心和包容是极其难得的。在本书的审校初期,我是崩溃的——感觉自己数学不好,常常上面说3项下面列4项;语文也不好,连基本的语句都表达不清,很符合那句玩笑话“你的语文是体育老师教的吧”。我能够想象编辑们在修改书稿之时是多么“痛苦”,因此再次感谢两位编辑,感谢他们的辛苦付出,因为有他们,本书才能够顺利出版。

回想这几年的写作过程,其实几次都想放弃,想将Node.js系统地讲明白,真的不是一件容易的事。可是话都说出去了,不想让一直以来支持我的读者失望,更不能自己“打脸”,所以,这本书最终还是跟大家见面了,《狼书》系列也终于完整地呈现在大家面前了!感谢各位粉丝在各个技术群里“花式”催书,感谢他们对我的鞭策。

再次感谢所有的小伙伴们。

致所有未见面的读者,但愿狼叔的“碎碎念”能够带你们打开Node.js世界的大门,领略大前端领域璀璨的星光。


狼叔

2022年10月


前言

起初,《狼书》是一本书,而不是系列图书。我想将自己对Node.js知识体系的理解进行总结,融入书中。然而,Node.js领域涉及的知识非常广泛,以至于写着写着就写了1000页。于是,我和编辑商定,将《狼书》拆分成了3本书。其中,卷1重点讲Node.js应用场景和入门,卷2重点讲以下一代框架Koa为核心的Web开发,卷3重点讲与实操相关的Node.js高级技术。

在Node.js世界里,高级技术并不是很多人理解的线上问题解决方案。本书中定义的高级技术,是让更多Node.js新人更容易上手的技术,是由新手变成经验丰富的高级工程师这一过程中需要掌握的技术。本书聚焦于实用高级技术,让大家可以边阅读边动手实践。所谓“授人以鱼不如授人以渔”,这也是我撰写本书的目的。

本书内容

本书以Node.js高级技术为核心,主要讲解如何开发npm模块、如何编写企业级Web开发框架、如何构建具有Node.js特色的服务,还介绍了与服务器部署、性能调优、测试、开源等相关的内容。

本书共分5章,每章的内容简介如下。

第1章 自己动手写npm模块

本章将介绍编码中常用的基本技能,如Ack、Autojump等常用命令,如何编写Node.js模块,各种npm使用技巧等。本章精选3个实例,详细讲解模块编写方法及脚手架写法,同时推荐了多个实用模块,如debug、mkdirp、shelljs等。

第2章 自己动手编写企业级Web开发框架

本章将介绍在实际项目中更为常用的企业级Web开发框架的脚手架写法。首先介绍Node.js领域常用的特色Web开发框架,让读者对Web框架有一个大致了解,然后介绍自己动手实现企业级Web框架的流程和注意事项,涉及脚手架开发、目录设计、模板开发、静态API模拟等。

第3章 构建具有Node.js特色的服务

本章将介绍基于Node.js构建的服务,包括微服务、BFF、SFF、SSR等,细致介绍服务器端常用架构,并完整讲解Node.js服务的构建流程和注意事项。其中,使用Node.js开发RPC服务和API服务是比较有特色的内容,页面即服务概念是各位读者需要重点掌握的。

第4章 服务器部署与性能调优

本章将介绍如何在云环境中完成Node.js服务器部署并实现各种性能调优方法。性能调优是一个宏大的话题,涉及的知识点非常广泛。本章介绍性能调优基础知识、立体分析和深度调优,更对0x、Easy-Monitor、Clinic、AliNode等常用工具的用法和性能进行了对比。

第5章 测试、开源与自学

本章将介绍测试入门、测试进阶和开源带来的机会。测试可以最小化问题,聚焦解决难点,这和通过开源进行自主学习有一定的相似性。因此,笔者将测试、开源、自学结合在一起,希望读者阅读本章内容后能有新的感悟,成长为更好的开发者。

本书中的各章内容基本是相互独立的,因此各位读者可以挑选自己感兴趣的章节阅读。这本书是《狼书》系列图书的第3卷,第1卷主要介绍Node.js基础知识,第2卷主要介绍Node.js Web应用开发。三卷搭配阅读,效果更好。

目标读者

本书的目标读者有以下三类。

正在学习JavaScript开发,对JavaScript语言有基本的了解和熟悉度,且希望能够了解JavaScript发展情况的人。

正从事JavaScript开发相关工作,熟悉JavaScript的基本开发要领,在日常工作中经常接触Node.js,想要深入了解Web应用、BFF、API代理等内容,以进一步提升自我的Web工程师(此处不区分前端与后端)。

具有极客精神,想要深入研究JavaScript语言及Node.js的全栈工程师。

阅读准备

要想运行本书中的示例,需要安装以下系统及软件。

操作系统:推荐Linux,以及macOS 10.9或以上版本,使用Windows操作系统可能会在运行示例时报错。

浏览器:Google Chrome、Safari、Firefox、Internet Explorer 11、Windows Edge。

运行环境:Node.js 8.x至Node.js 18.x均可。