书籍详情
《Node.js设计模式》[54M]百度网盘|亲测有效|pdf下载
  • Node.js设计模式

  • 出版社:中国电力出版社
  • 出版时间:2021-08
  • 热度:4601
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

  《Node.js设计模式(第三版)》中使用好的办法来实现各种设计模式以创造高效且健壮的Node.js应用程序。该书首先介绍Node.js的基础知识,包括异步事件驱动架构以及基本的设计模式。然后,介绍怎样用callback(回调)、Pronuse以及async/await机制来构建异步的控制流模式。其次,介绍Node.js的stream(流)并演示stream的强大功能,使读者能充分地利用这些功能。该书分析了三大类设计模式,即创建型的设计模式、结构型的设计模式以及行为型的设计模式,并介绍了怎样在JavaScript语言及Node.js平台中充分运用这些模式。最后,书中研究了一些比较高端的概念,例如UniversalJavaScript、Node.js程序的扩展问题以及消息传递模式等,以帮助读者打造企业级的分布式应用程序。
  《Node.js设计模式(第三版)》适合已了解Node.js技术,同时希望在程序的效率、设计及可扩展程度方面有所提高的开发者。阅读该书需要读者掌握Web应用程序、Web Service、数据库与数据结构方面的开发技术。

内页插图

目录

前言

第1章 Node.js平台
1.1 Node.js开发理念
1.1.1 小核心
1.1.2 小模块
1.1.3 小接触面(小暴露面)
1.1.4 简单实用
1.2 Node.js的工作原理
1.2.1 I/O
是慢速操作
1.2.2 阻塞式I/O
1.2.3 非阻塞式的I/0
1.2.4 事件多路分离
1.2.5reactor模式
1.2.6Node.js的I/O引擎-Libuv
1.2.7 Node.js的全套结构
1.3 Node.js平台之中的JavaScript
1.3.1 放心地使用最新版的JavaScript
1.3.2 模块系统
1.3.3 访问操作系统中的各项服务
1.3.4 运行原生代码
1.4 小结

第2章 模块系统
2.1 为什么需要模块
2.2 JavaScript与Node.js的模块系统
2.3 模块系统及其模式
2.4 CommonJS模块
2.4.1 自制的模块加载器
2.4.2 定义模块
2.4.3 module.exports与exports
2.4.4require函数是同步函数
2.4.5 模块解析算法
2.4.6 模块缓存
2.4.7 循环依赖
2.5 定义模块所用的模式
2.5.1 命名导出模式
2.5.2 函数导出模式
2.5.3 类导出模式
2.5.4 实例导出模式
2.5.5 通过monkey patching模式修改其他模块或全局作用域
2.6 ECMAScript模块(ESM)
2.6.1 在Node.js平台中使用ESM
2.6.2 命名导出模式与命名引入
2.6.3 默认导出与默认引入
2.6.4 混用命名导出与默认导出
2.6.5 模块标识符
2.6.6 异步引入
2.6.7 详细解释模块的加载过程
2.6.8 修改其他模块
2.7 ESM与CommonJS之间的区别以及交互使用技巧
2.7.1 ESM是在严格模式下运行的
2.7.2 ESM不支持CommonJS提供的某些引用
2.7.3 在其中一种模块系统里面使用另一种模块
2.8 小结

第3章 回调与事件
3.1 Callback(回调)模式
3.1.1 continuation-passing风格(CPS)
3.1.2 某个函数究竟是同步函数,还是异步函数?
3.1.3 在Node.js里面定义回调的惯例
3.2 0bserver(观察者)模式
3.2.1 EventEmitter
3.2.2 创建并使用EventEmitter
……
第4章 利用回调实现异步控制流模式
第5章 利用Promise与async/await实现异步控制流模式
第6章 用Stream编程
第7章 创建型的设计模式
第8章 结构型的设计模式
第9章 行为型的设计模式
第10章 用Universal JavaScript开发Web应用程序
第11章 高级技巧
第12章 用架构模式实现扩展
第13章 消息传递与集成模式

前言/序言

  许多人都认为Node.js改变了整个行业,称得上是近十年中Web开发界最大的创新。除了具备丰富的技术能力,Node.js还促使Web开发界乃至整个软件开发行业形成一种新的开发范式。
  首先,Node.js应用程序是用JavaScript语言写的,这是最流行的Web开发语言,而且也是唯一受到所有网页浏览器直接支持的语言。这意味着所有层面的应用,都可以用同一种语言来开发,而且服务器与客户端之间能够共用这种语言。此外,这也缩短了前端工程师与后端工程师之间的距离,让前端开发者能够相当直观地接触后端编程工作。只要熟悉Node.js与JavaScript,你就可以针对各种平台与环境轻松地构建软件。
  JavaScript有助于Node.js流行,而Node.js本身也反过来促进了JavaScript语言的兴起与演变,它让人意识到,JavaScript不仅在客户端有用,在服务器端也很有价值。使用Node.js开发的过程中,人们意识到JavaScript是一门实用而灵活的语言,并且能够以事件驱动的方式来写代码。另外,这也是一门混合型语言,既有面向对象的特征,又支持函数式编程。
  Node.js的第二项重大革新,是单线程编程模型与异步架构。这显然有助于提升性能,并且让程序易于扩展,除此之外,它还改变了开发者处理并发与并行的方式。它用队列取代互斥锁,用回调取代线程,用因果关系(causality)取代同步,这些抽象方式要比与之相对应的传统做法更为简单,同时在功能上还相当强大,让开发者能够效率极高地解决日常工作中的问题。
  第三项,也是最关键的一项创新,是Node.js培养了一套生态系统,其中有npm包管理器,有不断壮大的数据库模块,有乐于助人的代码提交者,更为重要的是,这套生态系统有自己的基本理念,也就是提倡简洁、注重实效,并推崇模块化的设计。
  正因为有这些特点,Node.js跟其他一些客户端的平台相比,会给人不同的感觉。新接触这种开发范式的程序员,经常找不到思路,甚至连最常见的设计与编程任务,都不知道应该如何解决才好。他们经常会问:我怎么安排代码的结构?这个项目怎么设计最好?我怎么才能让应用程序变得更加模块化?我如何高效地处理某一批异步调用?我怎样才能保证这个应用程序项目在发展的过程中不会崩溃?其实这都可以归结为:我怎么才能用Node.js把它正确实现出来?Node.js目前已经是个相当成熟的平台了,因此这些问题几乎都可以通过某种设计模式、某项编程技巧或某套推荐方案,轻松地予以解决。这本书,正是要带着大家领略这些模式、技巧与方案的形成过程,告诉你某些常见的问题,究竟应该采用哪一种做法来处理,同时还会教你怎样从这些做法出发,针对你自己的问题来打造特定的解决方案。
  在阅读本书的过程中,你会学到下列几方面内容:
  .“Node way”:
  指你在用Node.js开发程序时,应该以怎样的思路来切入。你会学到传统的设计模式与Node.js的模式之间有哪些区别,以及如何设计出只专注于一件事的模块。
  ·一套设计模式,用以解决常见的Node.js设计问题与编程问题:
  你会学到一套全方位的(也就是“瑞士刀式的”)模式,可以高效地解决日常工作中的开发与设计问题。
  ·如何编写易于扩展且效率较高的Node.js应用程序:
  你会理解基本的设计结构,以及编写大型Node.js应用程序时应遵循的原则,并学会利用这些原则,把项目安排得更加易于扩展。你还会学到怎样运用这些理念,来解决现有设计模式之外的新问题。
  ·用“现代的JavaScript”编程:
  JavaScript大概在1995年就出现了,但是经历过许多变化,最近几年变得尤其多。这本书会利用比较新的JavaScript机制来编程,例如类、Promise、生成器函数、async/await等,让你能够跟上JavaScript的潮流。
  整本书用的都是实际编程之中的库与技术,例如LevelDB、Redis、RabbitMQ、Ze-roMQ、Express等,笔者会用这些东西来演示某个模式或编程技巧,这不仅可以让范例更有意义,而且还会让大家更全面地接触Node.js的生态系统以及与之相关的全套解决方案。
  无论是工作项目、兴趣项目还是开源项目,都可以从这本书中受益,你在使用Node.js做这些项目时,可以利用本书中的知识,来判断这些项目能够使用什么样的模式与技巧,并把自己的编程与设计思路,用Node.js开发者能够听懂的说法分享给大家。而且,在这个过程中,你还可以更好地体会到Node.js的发展方向,以及自己应该如何为Node.js的发展出力。
  阅读本书之前所要做的准备
  为了尝试源代码,你必须安装一个能够正常运作的Node.js(版本要等于或大于14),以及一个npm(版本要等于或大于6)。如果某些范例还用到了其他工具,那么笔者会在那个范例之中提到相应的工具。此外,你还需要熟悉命令行,知道如何安装npm软件包以及如何运行Node.js应用程序。最后,你需要用某种文本编辑器来编写代码.并装有一个版本较新的网页浏览器。