BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

新兴趋势:反应性编程

| 作者 Dio Synodinos 关注 3 他的粉丝 ,译者 李彬 关注 1 他的粉丝 发布于 2013年8月31日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

InfoQ在几年以前就开始跟踪这一范式,数周前Gartner研究公司也在其出版的“2013年应用开发成熟度曲线”中论及了“反应性编程”和“事件驱动Web”(“新兴产物”章节)。

大约一个月前,Bruce Eckel(著有多部编程书籍)和Jonas Boner(Akka的缔造者和Typesafe的CTO)发表了“反应性宣言”,在其中尝试着定义什么是反应性应用

这样的应用应该能够:

  • 对事件做出反应:事件驱动的本质,让反应性应用能够支持文中提到的若干特性。
  • 对负载做出反应:聚焦于可扩展性,而不是单用户性能。
  • 对失败做出反应:建立弹性系统,能够从各个层级进行恢复。
  • 对用户做出反应:综合上述特征,实现交互式用户体验。

在这份宣言公布之后,Scala的创造者Martin OderskyReactive Extensions的创造者Erik Meijer和Akka科技公司的领导者Roland Kuhn,在Coursera上发布了一套免费课程,名为“反应性编程原理”:

该课程的目标在于讲授反应性编程的原理。反应性编程是一门新兴的学科,结合了并发、事件驱动和异步系统。对于编写任何类型的Web服务或分布式系统来说,它都至关重要;同时它在众多高性能并发系统中占有核心位置。反应性变成可以被视作高阶函数式编程对并发系统的自然拓展,通过协调和编排Actor交换的异步数据流,来处理分布的状态。

Netflix是已经将RP广泛投入使用的公司里的一员,它也贡献了一份RX的Java接口

使用RxJava函数式反应性编程,让Netflix开发者们能够利用服务器侧的并发,而无需触及典型的线程安全和同步问题。该API服务层的实现控制了并发原语,让我们能够追求系统性能的提升,而不必担心破坏客户端代码。对我们来说,RxJava在服务器端非常有效,而且我们越多地使用它,它也就将愈发深入地根植于我们的代码中。

Facebook也于近期发布了React JavaScript library,用来构建下一代用户界面。Facebook工程师Stoyan Stefanov描绘了React背后的主要理念

React让我们能够使用组件——它们知道如何去展现某些数据——来构建自己的应用。当数据发生变更的适合,组件会用一种非常高效的方式自动升级,而且仅在必要处升级。而且全部附加和卸除事件处理器的工作都会为我们处理好。使用委托模式(delegation)也是同样高效的。

值得注意的是,RP已经在前端开发者社区中吸引了大量关注。这始于2009年的the original Flapjax paper[PDF],随后也涌现了若干实现了RP原理的库,例如Bacon.jsKnockoutMeteorReact.jsReactive.coffeeRxJS

在2013年旧金山QCon大会上,培训和常规专题都将广泛地覆盖反应性变成的内容,一如其他主要软件和IT趋势和创新。欢迎大家积极参与并享受预先注册的优惠

查看英文原文:Reactive Programming as an Emerging Trend

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

看起来仍然是 Observer by He Yiding

看起来仍然是 Observer,不过侦听的对象从事件简化为变量?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT