万本电子书0元读

万本电子书0元读

顶部广告

深入浅出RxJS电子书

软件发中有什么老问题?技术发展迅速,用户的需求增加更快,软件的代码库也会随需求增长快速膨胀。 在这种情况下,如何保证代码质量?如何控制代码的复杂度?如何维持代码的可维护性?这些就成了软件发的大问题。业界的同仁们为了解决这些老问题做了各种努力,函数式编程和响应式编程就是在实践中被证明行之有效的两种方法。 RxJS兼具函数式和响应式两种编程方式的特,RxJS擅长处理异步操作,因为它对数据采用“推”的处理方式,当一个数据产生的时候,被推送给对应的处理函数,这个处理函数不用关心数据是同步产生的还是异步产生的,这样就把发者从命令式异步处理的枷锁中解放了出来。

售       价:¥

纸质售价:¥62.30购买纸书

12人正在读 | 0人评论 6.6

作       者:程墨

出  版  社:机械工业出版社

出版时间:2018-04-01

字       数:37.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(2条)
  • 读书简介
  • 目录
  • 累计评论(2条)
本书系统讲解RxJS响应式编程的技术原理与应用。第1章剖析函数响应式编程的基本概念,通过简单RxJS代码引函数响应式编程,并与传统编程方式对比,解释这种编程范式的优势,以及这种范式形成的历史。第2章介绍学习RxJS必须掌握的基本概念,包括数据流、操作符和观察者模式。第3~9章介绍RxJS的各种操作符,以及如何选择恰当的操作符来完成不同的任务。第10章介绍RxJS如何实现多播的方式。第11章介绍实现调度Scheduler的作用、原理与使用。第12章介绍如何调试和测试RxJS相关代码,写出高可测试性代码。第13章介绍如何在React应用中使用RxJS,提高代码质量。第14章介绍Redux与RxJS的组合应用,发挥两者的共同优势。第15章介绍一个综合案例,用RxJS实现网页游戏Breakout,并剖析RxJS如何实现动画和绘图。<br/>【推荐语】<br/>软件发中有什么老问题?技术发展迅速,用户的需求增加更快,软件的代码库也会随需求增长快速膨胀。在这种情况下,如何保证代码质量?如何控制代码的复杂度?如何维持代码的可维护性?这些就成了软件发的大问题。业界的同仁们为了解决这些老问题做了各种努力,函数式编程和响应式编程就是在实践中被证明行之有效的两种方法。RxJS兼具函数式和响应式两种编程方式的特,RxJS擅长处理异步操作,因为它对数据采用“推”的处理方式,当一个数据产生的时候,被推送给对应的处理函数,这个处理函数不用关心数据是同步产生的还是异步产生的,这样就把发者从命令式异步处理的枷锁中解放了出来。本书由浅深地讲解RxJS,不仅介绍所有操作符的功能,而且讲解实际应用与利弊,是提升发内功的好教程。<br/>【作者】<br/>程墨 资深架构师,曾任职于摩托罗拉、雅虎和微软,云鸟配送平台联合创始人,目前服务于美国视频服务公司Hulu。<br/>
目录展开

前言

第1章 函数响应式编程

1.1 一个简单的RxJS例子

1.2 函数式编程

1.2.1 什么是函数式编程

1.2.2 为什么函数式编程最近才崛起

1.2.3 函数式编程和面向对象编程的比较

1.3 响应式编程

1.4 Reactive Extension

1.5 RxJS是否是函数响应式编程

1.6 函数响应式编程的优势

1.7 本章小结

第2章 RxJS入门

2.1 RxJS的版本和运行环境

2.2 Observable和Observer

2.2.1 观察者模式

2.2.2 迭代器模式

2.2.3 创造Observable

2.2.4 跨越时间的Observable

2.2.5 永无止境的Observable

2.2.6 Observable的完结

2.2.7 Observable的出错处理

2.2.8 Observer的简单形式

2.3 退订Observable

2.4 Hot Observable和Cold Observable

2.5 操作符简介

2.6 弹珠图

2.7 本章小结

第3章 操作符基础

3.1 为什么要有操作符

3.2 操作符的分类

3.2.1 功能分类

3.2.2 静态和实例分类

3.3 如何实现操作符

3.3.1 操作符函数的实现

3.3.2 关联Observable

3.3.3 改进的操作符定义

3.3.4 lettable/pipeable操作符

3.4 本章小结

第4章 创建数据流

4.1 创建类操作符

4.2 创建同步数据流

4.2.1 create:毫无神奇之处

4.2.2 of:列举数据

4.2.3 range:指定范围

4.2.4 generate:循环创建

4.2.5 repeat:重复数据的数据流

4.2.6 三个极简的操作符:empty、never和throw

4.3 创建异步数据的Observable对象

4.3.1 interval和timer:定时产生数据

4.3.2 from:可把一切转化为Observable

4.3.3 fromPromise:异步处理的交接

4.3.4 fromEvent

4.3.5 fromEventPattern

4.3.6 ajax

4.3.7 repeatWhen

4.3.8 defer

4.4 本章小结

第5章 合并数据流

5.1 合并类操作符

5.1.1 concat:首尾相连

5.1.2 merge:先到先得快速通过

5.1.3 zip:拉链式组合

5.1.4 combineLatest:合并最后一个数据

5.1.5 withLatestFrom

5.1.6 解决glitch

5.1.7 race:胜者通吃

5.1.8 startWith

5.1.9 forkJoin

5.2 高阶Observable

5.2.1 高阶Observable的意义

5.2.2 操作高阶Observable的合并类操作符

5.2.3 进化的高阶Observable处理

5.3 本章小结

第6章 辅助类操作符

6.1 数学类操作符

6.1.1 count:统计数据个数

6.1.2 max和min:最大最小值

6.1.3 reduce:规约统计

6.2 条件布尔类操作符

6.2.1 every

6.2.2 find和findIndex

6.2.3 isEmpty

6.2.4 defaultIfEmpty

6.3 本章小结

第7章 过滤数据流

7.1 过滤类操作符的模式

7.1.1 filter

7.1.2 first

7.1.3 last

7.1.4 take一族操作符

7.1.5 计时的点击计数网页程序

7.1.6 skip

7.1.7 skipWhile和skipUntil

7.2 回压控制

7.2.1 throttle和debounce

7.2.2 auditTime和audit

7.2.3 sampleTime和sample

7.2.4 根据数据序列做回压控制

7.3 其他过滤方式

7.3.1 ignoreElements

7.3.2 elementAt

7.3.3 single

7.4 本章小结

第8章 转化数据流

8.1 转化类操作符

8.2 映射数据

8.2.1 map

8.2.2 mapTo

8.2.3 pluck

8.3 缓存窗口:无损回压控制

8.3.1 windowTime和bufferTime

8.3.2 windowCount和bufferCount

8.3.3 windowWhen和bufferWhen

8.3.4 windowToggle和bufferToggle

8.3.5 window和buffer

8.4 高阶的map

8.4.1 concatMap

8.4.2 mergeMap

8.4.3 switchMap

8.4.4 exhaustMap

8.4.5 高阶的MapTo

8.4.6 expand

8.5 数据分组

8.6 累计数据

8.6.1 scan

8.6.2 mergeScan

8.7 本章小结

第9章 异常错误处理

9.1 异常处理不可避免

9.2 异常处理的难点

9.2.1 try/catch只支持同步运算

9.2.2 回调函数的局限

9.2.3 Promise的异常处理

9.3 RxJS的异常处理

9.3.1 catch

9.3.2 retry

9.3.3 retryWhen

9.3.4 finally

9.4 重试的本质

9.5 本章小结

第10章 多播

10.1 数据流的多播

10.2 Hot和Cold数据流差异

10.3 Subject

10.3.1 两面神Subject

10.3.2 用Subject实现多播

10.3.3 makeHot操作符

10.3.4 Subject不能重复使用

10.3.5 Subject可以有多个上游

10.3.6 Subject的错误处理

10.4 支持多播的操作符

10.4.1 multicast

10.4.2 publish

10.4.3 share

10.5 高级多播功能

10.5.1 publishLast和AsyncSubject

10.5.2 pubishReplay和ReplaySubject

10.5.3 publishBehavior和BehaviorSubject

10.6 本章小结

第11章 掌握时间的Scheduler

11.1 Scheduler的调度作用

11.2 RxJS提供的Scheduler

11.3 Scheduler的工作原理

11.3.1 单线程的JavaScript

11.3.2 调用栈和事件循环

11.3.3 Scheduler如何工作

11.4 支持Scheduler的操作符

11.4.1 创造类和合并类操作符

11.4.2 observeOn

11.4.3 subscribeOn

11.5 本章小结

第12章 RxJS的调试和测试

12.1 调试方法

12.1.1 无用武之地的Debugger

12.1.2 利用日志来调试

12.1.3 利用do来插入调试代码

12.1.4 改进的日志调试方法

12.1.5 数据流依赖图

12.1.6 弹珠图

12.2 单元测试

12.2.1 单元测试的作用

12.2.2 RxJS天生适合单元测试

12.2.3 单元测试的结构

12.2.4 RxJS单元测试中的时间

12.2.5 操纵时间的TestScheduler

12.2.6 可测试性代码

12.3 本章小结

第13章 用RxJS驱动React

13.1 React简介

13.1.1 为什么选择React

13.1.2 React如何工作

13.2 简单的React应用Counter

13.3 利用RxJS管理React状态

13.3.1 利用Subject作为桥梁

13.3.2 用高阶组件连接RxJS

13.4 本章小结

第14章 Redux和RxJS结合

14.1 Redux简介

14.1.1 Redux的工作方式

14.1.2 构建Redux应用

14.2 用RxJS实现Redux

14.3 Redux和RxJS比较

14.4 Redux-Observable:Redux和RxJS的结合

14.5 本章小结

第15章 RxJS游戏开发

15.1 breakout的历史

15.2 程序设计

15.3 用RxJS实现breakout

15.4 本章小结

结语

累计评论(2条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部