RxJava 2.x 实战
  • 推荐0
  • 收藏5
  • 浏览1.2K

RxJava 2.x 实战

沈哲 (作者)  安娜 (责任编辑)

  • 书  号:978-7-121-33722-2
  • 出版日期:2017-05-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:安娜
电子书 ¥49.00
购买电子书
纸质版 ¥79.00
本书首先讲解了函数式响应式编程的概念,包括Observables、Subject、Processor 等,以及RxJava的优点和用途。然后讲解了RxJava 中必不可少的操作符,包括创建操作符、变换操作符、过滤操作符、条件操作符、布尔操作符、合并操作符和连接操作符。接着详细介绍了RxJava 的线程操作及线程模型,用大量的实例,讲解了RxJava 在Android 上和Java 后端的使用。最后,介绍了Java 8 的函数式编程的特性,以及对未来编程方式的展望。

本书适合Android 开发工程师、Java 后端开发工程师,以及对函数响应式编程、感兴趣的IT 从
业人员。
本书通过完整的体系,深入浅出地讲解了RxJava 2.x的方方面面,并通过案例详细讲解了如何解决一些生产环境的实战问题。

响应式编程正变得越来越流行,越来越多的App 都在使用Rx 相关的技术。在Java 后端,Spring 5 也开始支持响应式编程。在开源的技术社区里,Rx、响应式编程、函数式编程都是热门话题。

本书作者结合自身的学习以及使用情况,尽可能使用通俗易懂的讲解方式带领大家学习RxJava。同时,本书还附有丰富的例子,从Android 开发到Java 后端的开发,相信能够让大家感受到RxJava 的魅力。
沈哲,计算机软件与理论硕士,负责魔窗SDK的架构和研发,主要包括实现deep link(deferred deep link)、移动端原生广告、信息流广告、SDK安全、对第三方框架的裁剪,等等。保障了魔窗SDK多年的线上稳定运行。
超过8年的移动开发经验,负责过京东到家上海的移动团队,全程参与今夜酒店特价App的开发,Decarta Map SDK的开发,参与过格瓦拉App的开发。
多年的服务端开发经验,负责过京东旅行邮轮业务部门的后端团队。
熟悉函数响应式编程,了解计算机视觉。目前关注分布式账本、区块链经济。
前 言
编写这本书的目的
笔者从2015 年开始关注RxJava 以及响应式编程,当时网上的资料很少。三年后的今
天,我们可以看到越来越多的App 都在使用Rx 相关的技术。在Java 后端,Spring 5 也开
始支持响应式编程。在开源的技术社区里,Rx、响应式编程、函数式编程都是热门话题。
我们公司开发的App,笔者也会强制大家使用RxJava 或者RxSwfit。本书通过完整的体系
介绍了RxJava 的方方面面。
对于不了解响应式编程的开发者,RxJava 的入门可能会有一些难度。笔者结合自身的
学习以及使用情况,尽可能使用通俗易懂的讲解方式带领大家学习RxJava。同时,本书还附
有丰富的例子,从Android 开发到Java 后端的开发,相信能够让大家感受到RxJava 的魅力。
读者对象
1)Android 开发工程师。
2)Java 后端开发工程师。
3)对函数式编程、响应式编程感兴趣的IT 从业人员。
如何阅读本书
本书共分为18 章。
第1 章讲述了RxJava 的来龙去脉,以及什么是响应式编程、什么是函数式编程。
第2 章至第7 章讲述了RxJava 的基础概念,以及RxJava 常用的操作符。
第8 章至第10 章为RxJava 的高级部分。
第11 章至第12 章为RxAndroid 的使用篇,介绍了常用的RxBinding、Retrofit 等框架。
第13 章至第15 章为RxJava 的实战篇,介绍了如何实现一个基于RxJava 的Event Bus
框架,以及Spring Boot 如何与RxJava 相结合使用。
第16 章至第18 章介绍了Java 8 函数式编程的特性和Kotlin,并展望未来。

勘误和支持
本书相关例子的源码都在GitHub 上, 地址: https://github.com/fengzhizi715/
RxJavaInAction。
由于笔者水平有限,编写本书时难免会出现错误或者纰漏,恳请
读者批评指正。读者可以关注笔者的公众号与笔者进行互动。或者通
过邮箱:fengzhizi715@126.com,有关本书的任何问题都可以反馈给笔
者,笔者期待与您的技术交流。

致谢
首先要感谢我的家人,最主要是感谢我的妻子。在写书期间,恰逢儿子的出生,她承
担了绝大部分照顾儿子的责任。
感谢公司的支持与同事的帮助,特别是刘志强帮我整理了很多RxJava 相关的资料,以
及对本书部分章节进行了试读,并提出意见。
感谢www.bsfans.com 罗波同学提供UI 支持。

目录

第1 章 RxJava 简介 1
1.1 你需要了解的函数响应式编程 1
1.2 RxJava 简介 4
1.3 为何选择RxJava 6
1.4 RxJava 能做什么 10
1.5 RxJava 2 的Hello World 11
1.6 小结 12
第2 章 RxJava 基础知识 . 13
2.1 Observable 13
2.2 Hot Observable 和Cold Observable 20
2.3 Flowable . 33
2.4 Single、Completable 和Maybe . 34
2.5 Subject 和Processor . 48
2.6 小结 63
第3 章 创建操作符 64
3.1 create、just 和from . 65
3.2 repeat 72
3.3 defer、interval 和timer 75
3.4 小结 80
第4 章 RxJava 的线程操作 . 81
4.1 调度器(Scheduler)种类 81
4.2 RxJava 线程模型 83
VI ∣ RxJava 2.x 实战
4.3 Scheduler 的测试 . 99
4.4 小结 106
第5 章 变换操作和过滤操作符 107
5.1 map 和flatMap . 108
5.2 groupBy 112
5.3 buffer 和window 114
5.4 first 和last 121
5.5 take 和takeLast 125
5.6 skip 和skipLast 131
5.7 elementAt 和ignoreElements . 135
5.8 distinct 和filter . 139
5.9 debounce . 142
5.10 小结 144
第6 章 条件操作符和布尔操作符 145
6.1 all、contains 和amb 146
6.2 defaultIfEmpty 150
6.3 sequenceEqual 152
6.4 skipUtil 和skipWhile . 154
6.5 takeUtil 和takeWhile . 156
6.6 小结 159
第7 章 合并操作符与连接操作符 160
7.1 merge 和zip . 161
7.2 combineLatest 和join . 167
7.3 startWith 171
7.4 connect、push 和refCount 174
7.5 replay 180
7.6 小结 183
第8 章 RxJava 的背压 184
8.1 背压 184
8.2 RxJava 2.x 的背压策略 188
8.3 小结 193
第9 章 Disposble 和Transformer 的使用 194
9.1 Disposable 194
9.2 RxLifecycle 和AutoDispose 196
9.3 Transformer 在RxJava 中的使用 198
9.4 小结 213
第10 章 RxJava 的并行编程 . 214
10.1 RxJava 并行操作 214
10.2 ParallelFlowable . 221
10.3 小结 225
第11 章 RxBinding 的使用 226
11.1 RxBinding 简介 226
11.2 RxBinding 使用场景 229
11.3 RxBinding 结合RxPermissions 的使用 243
11.4 RxBinding 使用的注意点 249
11.5 小结 251
第12 章 RxAndroid 2.x 和Retrofit 的使用 . 252
12.1 RxAndroid 2.x 简介 . 252
12.2 Retrofit 简介 . 257
12.3 Retrofit 与RxJava 的完美配合 . 258
12.4 小结 272
第13 章 开发EventBus 274
13.1 传统的EventBus 274
13.2 开发一个新的EventBus(一) 276
13.3 开发一个新的EventBus(二) 285
13.4 开发一个新的EventBus(三) 287
13.5 开发一个新的EventBus(四) 294
13.6 小结 302

第14 章 使用RxJava 封装Httpclient 4.5 303
14.1 HttpClient 的介绍 303
14.2 使用RxJava 进行重构 . 309
14.3 实现一个简单的图片爬虫 317
14.4 小结 323
第15 章 Spring Boot 和RxJava 2 . 325
15.1 模拟Task 任务 . 325
15.2 构建一个给爬虫使用的代理IP 池 . 335
15.3 小结 347
第16 章 Java 8 的函数式编程 348
16.1 Java 8 的新变化 .348
16.2 函数 349
16.3 Lambda 表达式 352
16.4 Java 8 新增的Stream .355
16.5 函数的柯里化 364
16.6 新的异步编程方式CompletableFuture .367
16.7 小结 388
第17 章 Kotin 和RxJava 389
17.1 Kotlin 简介 .389
17.2 使用Kotlin 来封装图像框架 393
17.3 小结 405
第18 章 展望未来 406
18.1 期待已久的Java 9 406
18.2 其他的Reactive Streams 项目 . 408
18.3 小结 410
附录A RxJava 常用的操作符列表 411
附录B .RxJava 中常用的library 416

本书勘误

印次
  • 页码:73  •  行数:4  •  印次: 3

    页面内容多写了一个执行结果 “repeatWhen”

    野小火 提交于 2018/10/31 0:37:59
    安娜 确认于 2018/12/24 8:44:06
  • 页码:174  •  行数:1  •  印次: 3

    原文是 connect、push和refCount,应该改成connect、publish和refCount

    野小火 提交于 2018/10/31 14:28:31
    安娜 确认于 2018/12/24 8:43:47
  • 页码:174  •  行数:7  •  印次: 3

    原文:push操作符是用来…,应当是:publish操作符是用来…

    野小火 提交于 2018/10/31 14:29:24
    安娜 确认于 2018/12/24 8:43:41
  • 页码:183  •  行数:16  •  印次: 3

    这段代码中, connect()无须在观察者订阅之后调用之后也能执行。
    上述文字结合代码,表述不通顺

    野小火 提交于 2018/10/31 14:52:09
    安娜 确认于 2018/12/24 8:42:38
  • 页码:368  •  行数:20  •  印次: 3

    页面多了一个”2.0”标题

    野小火 提交于 2018/11/1 13:23:45
    安娜 确认于 2018/12/24 8:44:49

读者评论

电子书版本

  • Epub

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

算法笔记(第2版)

刁瑞 谢妍 (作者)

ChatGPT掀起了现象级的风暴,赶超ChatGPT潮流,算法突破是关键。 本书介绍了若干常见算法,涉及排序、哈希、动态规划与近似算法、高斯消去法、图论与线性...

 

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

Linux从入门到精通

张启玉 (作者)

本书以CentOS 7.8为演示系统,以阿里云为演示服务器,从Linux常用命令入手,从一毕业就要入职公司的上手要求出发,重实战、轻原理,目的就是要带领读者从一...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...