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