在参加了许多次谈话并阅读了大量的博文后, Peter Ledbrook 仍然未能深刻地理解 响应式编程 的含义。因此他 认为 ,响应式编程领域存在一个关键的问题,就是它之所以那么难以理解是因为所有的术语词汇以及针对这些词汇的许多不同的解释。于是,他决定搞明白这一切,并希望同其他开发人员分享他的知识。
Ledbrook是Grails的核心贡献者之一。他首先阅读了 响应式编程宣言 ,发现响应式系统具备如下特点:
Ledbrook关注的下一个概念是响应式流,他将其描述为随着时间发出的一系列元素。他认为,从 观察者模式 入手理解这个概念是个不错的出发点。该模式包含一个发出事件的源及一个或多个等待事件的观察者。在Ledbrook看来,响应式实际上是观察者模式加上事件源的完成通知能力、错误传播能力和监听者同事件源通信的能力。
响应式流是一种 规范 , ReactiveX 是一种常用的跨平台实现。 ProjectReactor 和 Akka 是另外两种实现。下面三个重要的概念是响应式流API的构建基础:
Ledbrook最后指出,许多响应式流都是由我们熟悉的概念构成,但是至少是部分地隐藏了复杂性。它适合于高I/O的环境或者需要处理大量数据的环境。Java 8的流同响应式流类似,但他指出,Java 8的流只能推送,不能接收监听者的信号,并且没有像响应式流所做的那样真正地针对I/O进行优化。
查看英文原文: The Basics of Being Reactive