【译】什么是响应式编程


(原文地址:https://medium.com/@kevalpatel2106/what-is-reactive-programming-da37c1611382) . 
    
    现今,人人都在讨论响应式编程,你可能也会对学习这个新技术感兴趣。你可能已经看到一些响应式编程的应用,但还是有些迷糊,需要一些指引。
    在这篇文章中,我们将学习一些响应式编程的基本概念。下篇文章开始,我们再来写些代码,并学习如何在 Android 应用开发中使用 RxJava。
    首先,我们需要了解当下我们正面临怎样的挑战。我们为什么需要响应式编程?

为什么需要异步操作(Asynchronous work)
    简单得说,我们使用异步是为了提升用户体验。我们想要我们的应用变得更加流畅。我们想为用户提供丝般顺滑的用户体验,不会因为阻塞主线程而带来界面卡死。
    为了不阻塞主线程,我们需要把一些比较重的,耗时的操作放到后台执行。由于移动设备的限制,有些耗时操作和复杂的计算也可以放在服务器端。因此,我们需要异步来执行网络操作。

The evaluation matrix:


什么是响应式编程
    根据维基百科介绍:
    > 在计算机中,响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。

    In simple words, In Rx programming data flows emitted by one component and the underlying structure provided by the Rx libraries will propagate those changes to another component those are registered to receive those data changes. Long story short: Rx is made up of three key points.
    简单得说,在

    > RX = OBSERVABLE + OBSERVER + SCHEDULERS
    我们一个一个看看他们都代表什么。
    Observable:Observable 就是数据流。Observable 包装了数据并且可以在线程之间传递。基于 Observable 的类型和配置,在 Observable 的生命周期中,他们可以发送(emit)一次或多次其包装的数据。有许多操作符(operators)可以帮助 Observable 在某些指定的条件下发送特定的数据,我们会在今后详细分析。现在,你可以把 Observable 想象成供应商(suppliers)。他们会处理并提供数据给其他的组建。
    Observers:Observers 用于消费(consumes)由 Observable 发送的数据流。Observers 调用 subscribeOn() 方法来订阅(subscribe)并接收 Observable 发送的数据。无论 Observable 何时发送数据,订阅它的 Observer 都会收到 onNext() 回调。Observer 可以在回调中做许多操作,比如解析 JSON 响应或者更新 UI。如果 Observable 抛出错误,Observer 则会在 onError() 中收到这个错误。
    Schedulers:响应式编程是用来做异步编程的,因此我们需要做线程管理。因此引入了 Schedulers。Schedulers 是用于控制 Observable 和 Observer 在哪个线程上运行的组建。你可以调用 subscribeOn() (原文为 scheduleOn(),因该是写错了) 方法来控制 Observable 的执行线程。RxJava 提供了一些主要的默认线程,比如 Schedulers.newThread() 方法会创建一个新的后台线程,Schedulers.io() 则会创建一个勇于执行 IO 操作的线程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值