阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js 设计模式

      Node.js 设计模式

      编辑推荐

      适读人群 :开发人员和有一些 JavaScript 基本知识且有兴趣去深入了解如何开发和设计企业级的 Node.js 应用的软件架构师

      • Node.js 的开发方式:如何使用正确的思维方式去解决一个 Node.js 开发设计问题。比如你会学习到,传统设计模式在 Node.js 开发中的不同体现,或者如何设计提供单一功能的模块。
      • 一整套解决常见 Node.js 设计和编码问题的设计模式:你会学习到一整套像“瑞士军刀”一样功能多样、实用的设计模式,让你能即学即用,解决日常遇到的程序开发和设计问题。
      • 如何编写模块化、高效率的 Node.js 程序:你将会理解开发大规模并且结构组织合理的 Node.js 程序的基本方法,并能运用这些方法去解决不属于现有设计模式范畴的新问题。
      • 真实项目中用到的库和技术:LevelDb、Redis、RabbitMQ、ZMQ 及 Express 等用来作为示例阐述某个设计模式或者方法,让例子更加实用,对生态系统及它解决问题的方法有所了解。

      内容简介

      本书通过大量示例形象地阐述了 Node.js 的哲学思想和设计模式。内容主要由六部分组成:Node 核心思想、基础设计模式、异步控制流模式、流编程、Node.js 的传统设计模式和特有设计模式、通用编程的 Web 应用以及处理复杂实际问题的高级编程技巧。这是一本值得深入品读的书籍,读者若具备一些软件设计的理论知识会有助于理解书中提出的概念,中级 Node.js 开发者也会从本书有所收获。本书尤其适用于已经接触过 Node.js 并且想在效率、设计质量和可扩展性方面获得提升的开发者。

      作者简介

      Mario Casciaro,软件工程硕士学位,软件工程师,企业家,对技术、科学和开源知识充满了热情。他在 IBM 开始了职业生涯,数年间先后参与很多不同产品的开发,例如 Tivoli EndpointManager、Cognos Insight 及 SalesConnect。后来,他加入了一个成长中的 SaaS 公司――D4HTechnologies,负责开发一款实时应急管理的前沿产品。现在,Mario 是 Sponsorama.com 的联合创始人兼 CEO,这是一个帮助在线项目募集企业赞助资金的平台。Mario 也是 Node.js Design Patterns(Node.js 设计模式)第一版的作者。 翻译成员全部来自陆金所大前端团队,也是公众号大前端工程师的翻译小组成员,他们在公众号与知乎专栏里面也有很多新的技术文章的翻译,此次由寸志老师带队,大家一边在公司进行 nodejs 项目的推广实践,一边将实践的心得注入到本书翻译的理解,这是非常难得的结合,相信大家在读的过程中能体会到这一点。

      目录

      第 1 章欢迎来到 Node.js 平台

      • Node.js 的哲学思想
      • 小核心
      • 小模块
      • 小接触面
      • 简单和实用
      • 认识 Node.js 6 和 ES2015
      • let 和 const 关键字
      • 箭头函数
      • 类语法
      • 增强的对象字面量
      • Map 和 Set 集合
      • WeakMap 和 WeakSet 集合
      • 模板字面量
      • 其他 ES2015 特性
      • Reactor 模式
      • I/O 是缓慢的
      • 阻塞 I/O
      • 非阻塞 I/O
      • 事件多路分解器
      • Reactor 模式简介
      • Node.js-libuv 的非阻塞 I/O 引擎
      • Node.js 的秘诀
      • 总结

      第 2 章 Node.js 基础设计模式

      • 回调模式
      • CPS(Continuation Passing Style
      • 同步或异步
      • Node.js 回调约定
      • 模块系统及其模式
      • 揭示模块模式
      • Node.js 模块解释
      • 模块定义模式
      • 观察者模式
      • EventEmitter 类
      • 创建和使用 EventEmitter
      • 传播错误
      • 使任何对象可观察
      • 同步和异步事件
      • EventEmitter 与回调
      • 组合回调和 EventEmitter
      • 总结

      第 3 章异步控制流模式之回调函数

      • 异步编程的困难
      • 创建一个简单的网络蜘蛛
      • 回调地狱
      • 使用纯 JavaScript
      • 回调规则
      • 应用回调规则
      • 顺序执行
      • 并行执行
      • 有限制的并行执行
      • async 库
      • 顺序执行
      • 并行执行
      • 有限制的并行执行
      • 总结
      • xiv

      第 4 章异步控制流模式之 ES2015+

      • promise
      • 什么是 promise
      • Promises/A+ 实现
      • Node.js 风格函数的 promise 化
      • 顺序执行
      • 并行执行
      • 有限制的并行执行
      • 在公共 API 中暴露 callback 和 promise
      • generator
      • generator 基础
      • generator 的异步控制流
      • 顺序执行
      • 并行执行
      • 有限制的并行执行
      • 使用 Babel 的 async await
      • 安装和运行 Babel
      • 比较
      • 总结

      第 5 章流编程

      • 流的重要性
      • 缓冲和流
      • 空间效率
      • 时间效率
      • 组合性
      • 开始学习流
      • 流的分类
      • 可读流
      • 可写流
      • 双向流 (Duplex stream)
      • 变换流
      • 使用管道拼接流
      • 使用流处理异步流程
      • 顺序执行
      • 无序并行执行
      • 无序有限制的并行执行
      • 顺序并行执行
      • xv
      • 管道模式
      • 组合流
      • 复制流
      • 合并流
      • 复用和分解
      • 总结

      第 6 章设计模式

      • 工厂模式
      • 创建对象的通用接口
      • 一种封装的机制
      • 构建一个简单的代码分析器
      • 可组合的工厂函数
      • 扩展
      • 揭示构造函数
      • 只读事件触发器
      • 扩展
      • 代理模式
      • 实现代理模式的方法
      • 不同方法的比较
      • 创建日志记录的写入流
      • 生态系统中的代理模式――函数钩子与面向行为编程 (AOP)
      • ES2015 中的 Proxy 对象
      • 扩展
      • 装饰者模式 (Decorator)
      • 实现装饰者模式的方法
      • 装饰一个 LevelUP 数据库
      • 扩展
      • 适配器模式 (Adapter)
      • 通过文件系统 API 来使用 LevelUP 数据库
      • 扩展
      • 策略模式 (Strategy)
      • 支持多种格式的配置对象
      • 扩展
      • 状态模式
      • 实现一个基本的自动防故障套接字
      • 模板模式 (Template)
      • 配置管理器模板
      • xvi
      • 扩展
      • 中间件 (Middleware)
      • Express 中的中间件
      • 设计模式中的中间件
      • 为?MQ 创建中间件框架
      • 在 Koa 中使用生成器的中间件
      • 命令模式 (Command)
      • 灵活的设计模式
      • 总结

      第 7 章连接模块

      • 模块和依赖
      • Node.js 中最常见的依赖
      • 内聚和耦合
      • 有状态的模块
      • 连接模块模式
      • 硬编码依赖
      • 依赖注入
      • 服务定位器
      • 依赖注入容器
      • 连接插件
      • 插件作为包
      • 扩展点
      • 插件控制与应用程序控制的扩展
      • 实现注销插件
      • 总结

      第 8 章通用 JavaScript 的 Web 应用程序

      • 与浏览器端共享代码
      • 共享模块
      • Webpack 简介
      • Webpack 的魔力
      • Webpack 的优点
      • 使用 ES2015 和 Webpack
      • 跨平台开发基础
      • 运行时代码分支
      • 构建时代码分支
      • 模块交换
      • xvii
      • 用于跨平台开发的设计模式
      • React 介绍

      第一个 React 组件

      • JSX 是什么
      • 配置 Webpack 以实现 JSX 转换
      • 在浏览器中渲染
      • React 路由库
      • 创建通用 JavaScript 应用程序
      • 创建可用的组件
      • 服务端渲染
      • 通用渲染和路由
      • 通用数据检索
      • 总结

      第 9 章高级异步编程技巧

      • 需要异步初始化的模块
      • 规范解决方案
      • 预初始化队列
      • 题外话
      • 异步批处理和缓存
      • 实现没有缓存或批处理的服务器
      • 异步请求批处理
      • 异步请求缓存
      • 使用 promise 进行批处理和缓存
      • 运行 CPU 绑定的任务
      • 解决子集和问题
      • 交叉使用 setImmediate
      • 使用多进程
      • 总结

      第 10 章扩展与架构模式

      • 应用程序扩展介绍
      • 扩展 Node.js 应用程序
      • 可扩展性的三个维度
      • 克隆和负载均衡
      • 集群模块
      • 处理有状态通信
      • 使用反向代理进行扩展
      • xviii
      • 使用服务注册表
      • 对等负载均衡
      • 分解复杂的应用程序
      • 单体式架构
      • 微服务架构
      • 微服务架构中的集成模式
      • 总结

      第 11 章消息传递与集成模式

      • 消息系统的基础
      • 单向和请求 / 应答模式
      • 消息类型
      • 异步消息和队列
      • 对等或基于代理的消息
      • 发布 / 订阅模式
      • 构建简约的实时聊天应用程序
      • 使用 Redis 作为消息代理
      • 使用?MQ 对等发布 / 订阅
      • 持久订阅者
      • 管道和任务分配模式
      • MQ 扇出 / 扇入模式
      • 使用 AMQP 实现管道和竞争消费者模式
      • 请求 / 应答模式
      • 关联标识符
      • 返回地址
      • 总结
      目录
      目录