Logo
☆☆☆☆☆
0.0
Advanced
45h

Node.js 设计模式

Node.js 被认为是网页开发领域的一次革新。它使用 JavaScript 编写,而 JavaScript 是目前采用最广泛的编程语言,同时也是所有网页浏览器原生支持的唯一编程语言。掌握 Node.js 和 JavaScript 后,你便能轻松地为多种平台开发软件。 本课程首先介绍 Node.js 平台,阐述其生态系统和核心理念。接着,讲解模块系统、回调函数和事件机制,帮助你开发异步应用。通过学习异步控制流程的模式与技巧,你将能够掌握 Node.js 的最佳实践。此外,课程还提供一系列高级实战技巧,采用“问题-解决方案”的方式,展示如何用现成的方案应对编码和设计中的复杂细节。 完成本课程后,你将对 Node.js 生态系统及其部分设计模式有更深入的理解,这将为你开发交互性强且高效的 Web 应用打下坚实基础。

15 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Node.js 设计模式
Node.js 被认为是网页开发领域的一次革新。它使用 JavaScript 编写,而 JavaScript 是目前采用最广泛的编程语言,同时也是所有网页浏览器原生支持的唯一编程语言。掌握 Node.js 和 JavaScript 后,你便能轻松地为多种平台开发软件。 本课程首先介绍 Node.j...

WHAT YOU'LL LEARN

掌握 Node.js 开发的思路与方法

Content

15 Lessons • 0 Quizzes • 0 Challenges

概览
  1. 1

    课程简介

Node.js 平台
  1. 1

    简介

  2. 2

    Node.js 的理念

  3. 3

    Node.js 的工作原理

  4. 4

    JavaScript 在 Node.js 中

  5. 5

    总结

  6. 6

    测验

模块系统
  1. 1

    简介

  2. 2

    CommonJS 模块

  3. 3

    解析算法

  4. 4

    模块定义模式(一)

  5. 5

    模块定义模式(二)

  6. 6

    ESM:ECMAScript 模块

  7. 7

    ESM:命名导出与导入

  8. 8

    ESM:默认导出、混合导出和异步导入

  9. 9

    模块加载深入详解

  10. 10

    修改其他模块

  11. 11

    ESM 与 CommonJS 的区别及互操作性

  12. 12

    总结

  13. 13

    测验

回调函数与事件
  1. 1

    简介

  2. 2

    回调模式:延续传递风格(CPS)

  3. 3

    回调模式:同步与异步(一)

  4. 4

    回调模式:同步与异步(二)

  5. 5

    回调模式:Node.js 的约定

  6. 6

    观察者模式:EventEmitter 类

  7. 7

    观察者模式:可观察对象

  8. 8

    观察者模式:同步与异步事件

  9. 9

    事件发射器与回调函数

  10. 10

    总结

  11. 11

    练习:一个简单的事件

  12. 12

    练习:股票行情显示

  13. 13

    练习:一个简单的修改

  14. 14

    练习:处理错误

使用回调函数的异步控制流模式
  1. 1

    简介

  2. 2

    异步编程的难点:网络爬虫

  3. 3

    回调最佳实践:回调纪律

  4. 4

    顺序执行:网络爬虫版本2

  5. 5

    顺序执行:链接爬取

  6. 6

    顺序执行:模式

  7. 7

    并行执行:网络爬虫版本3

  8. 8

    并行执行:模式

  9. 9

    有限的并行执行

  10. 10

    全局并发限制

  11. 11

    网络爬虫版本 4

  12. 12

    异步库

  13. 13

    总结

  14. 14

    练习:文件连接

  15. 15

    练习:递归列出文件

  16. 16

    练习:递归查找

使用 Promise 和 Async/Await 的异步控制流模式
  1. 1

    简介

  2. 2

    Promise

  3. 3

    顺序执行与迭代

  4. 4

    并行执行

  5. 5

    有限的并行执行与 TaskQueue 类

  6. 6

    更新网络爬虫

  7. 7

    异步代码中的 Async/Await 配对

  8. 8

    使用 async/await 进行错误处理

  9. 9

    顺序执行与使用 Async/Await 的循环

  10. 10

    使用 Async/Await 和 Promise.all() 实现并行执行

  11. 11

    有限的并行执行

  12. 12

    无限递归 Promise 解析链的问题

  13. 13

    总结

  14. 14

    练习:剖析 Promise.all()

  15. 15

    练习:使用 Promise 的任务队列

  16. 16

    练习:使用 Promise 实现生产者-消费者模式

  17. 17

    练习:异步的 map()

使用流进行编程
  1. 1

    简介

  2. 2

    空间效率

  3. 3

    时间效率

  4. 4

    可组合性

  5. 5

    开始使用流

  6. 6

    可读流:非流动模式与流动模式

  7. 7

    实现可读流

  8. 8

    可读流:简化构造与迭代器

  9. 9

    可写流:编写流与背压

  10. 10

    可写流:实现

  11. 11

    双工流

  12. 12

    实现转换流

  13. 13

    使用转换流进行数据过滤与聚合

  14. 14

    PassThrough 流

  15. 15

    惰性流

  16. 16

    管道与错误处理

  17. 17

    使用 pipeline() 实现更优的错误处理

  18. 18

    使用流实现异步控制流模式

  19. 19

    无序并行执行

  20. 20

    无序有限并发执行

  21. 21

    异步控制流模式:有序并行执行

  22. 22

    管道模式:合并流

  23. 23

    管道模式:分叉流

  24. 24

    合并流:合并文本文件

  25. 25

    管道模式:多路复用与解多路复用

  26. 26

    管道模式:对象流的多路复用与解多路复用

  27. 27

    总结

  28. 28

    练习:数据压缩效率

  29. 29

    练习:流数据处理

创建型设计模式
  1. 1

    简介

  2. 2

    工厂模式:解耦对象创建

  3. 3

    工厂模式:封装与简单代码分析器

  4. 4

    建造者模式

  5. 5

    建造者模式:实现一个URL对象建造者

  6. 6

    揭示构造函数

  7. 7

    单例模式

  8. 8

    连接模块:单例依赖

  9. 9

    连接模块:依赖注入

  10. 10

    总结

  11. 11

    练习:控制台颜色工厂

  12. 12

    练习:请求构建器

  13. 13

    练习:防篡改队列

结构型设计模式
  1. 1

    简介

  2. 2

    代理模式:代理实现技术(一)

  3. 3

    代理模式:代理实现技术(二)

  4. 4

    代理模式:创建一个带日志功能的可写流

  5. 5

    代理模式:变更观察者模式

  6. 6

    装饰器模式

  7. 7

    装饰 LevelUP 数据库

  8. 8

    代理模式与装饰器模式之间的界限

  9. 9

    适配器模式

  10. 10

    总结

  11. 11

    练习:HTTP 客户端缓存

  12. 12

    练习:带时间戳的日志

  13. 13

    练习:彩色控制台输出

  14. 14

    练习:虚拟文件系统

  15. 15

    练习:懒加载缓冲区

行为设计模式
  1. 1

    简介

  2. 2

    策略模式

  3. 3

    状态模式

  4. 4

    实现一个基本的容错套接字

  5. 5

    模板模式

  6. 6

    迭代器模式

  7. 7

    可迭代协议

  8. 8

    迭代器内置方法

  9. 9

    生成器模式

  10. 10

    异步迭代器

  11. 11

    异步生成器

  12. 12

    中间件模式

  13. 13

    为 ZeroMQ 构建一个中间件框架

  14. 14

    实现中间件以处理消息

  15. 15

    命令模式

  16. 16

    命令模式的实现

  17. 17

    总结

  18. 18

    练习:使用策略模式进行日志记录

  19. 19

    练习:使用模板进行日志记录

  20. 20

    练习:仓库物品

  21. 21

    练习:使用中间件进行日志记录

适用于Web应用的通用JavaScript
  1. 1

    简介

  2. 2

    与浏览器共享代码

  3. 3

    模块打包工具

  4. 4

    使用 Webpack

  5. 5

    跨平台开发基础(一)

  6. 6

    跨平台开发基础(二)

  7. 7

    跨平台开发基础(三)

  8. 8

    React 简介

  9. 9

    React.createElement() 方法的替代方案

  10. 10

    有状态组件

  11. 11

    创建一个通用 JavaScript 应用

  12. 12

    服务器端渲染

  13. 13

    异步数据获取

  14. 14

    通用数据检索

  15. 15

    实现异步页面

  16. 16

    总结

  17. 17

    测验

高级技巧
  1. 1

    简介

  2. 2

    处理异步初始化的组件

  3. 3

    预初始化队列

  4. 4

    异步请求批处理与缓存

  5. 5

    一个没有缓存或批处理的 API 服务器

  6. 6

    使用 Promise 进行批量处理和缓存

  7. 7

    取消异步操作

  8. 8

    使用生成器实现可取消的异步函数

  9. 9

    运行CPU密集型任务

  10. 10

    使用 setImmediate 函数进行交错执行

  11. 11

    使用外部进程(一)

  12. 12

    使用外部进程(二)

  13. 13

    使用工作线程

  14. 14

    总结

  15. 15

    练习:带有预初始化队列的代理

  16. 16

    练习:使用回调进行批处理和缓存

  17. 17

    练习:深度异步可取消

可扩展性与架构模式
  1. 1

    简介

  2. 2

    应用程序扩展简介

  3. 3

    克隆与负载均衡

  4. 4

    构建一个简单的 HTTP 服务器

  5. 5

    零停机重启

  6. 6

    处理有状态的通信

  7. 7

    通过反向代理进行扩展

  8. 8

    动态水平扩展

  9. 9

    点对点负载均衡

  10. 10

    使用容器扩展应用程序(一)

  11. 11

    使用容器扩展应用程序(二)

  12. 12

    分解复杂应用

  13. 13

    微服务架构中的集成模式

  14. 14

    总结

  15. 15

    测验

消息传递与集成模式
  1. 1

    简介

  2. 2

    消息系统的基本原理

  3. 3

    发布/订阅模式

  4. 4

    使用 Redis 的发布/订阅模式

  5. 5

    点对点发布/订阅模式与ZeroMQ

  6. 6

    使用队列实现可靠的消息传递

  7. 7

    使用流实现可靠消息传递

  8. 8

    任务分配模式

  9. 9

    任务分发:使用 ZeroMQ

  10. 10

    AMQP 中的管道与竞争消费者

  11. 11

    使用 Redis Streams 分发任务

  12. 12

    请求/回复模式

  13. 13

    返回地址

  14. 14

    总结

  15. 15

    测验

结论
  1. 1

    总结

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)