写点什么

新兴趋势:反应性编程

  • 2013-08-30
  • 本文字数:1110 字

    阅读完需:约 4 分钟

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

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

这样的应用应该能够:

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

在这份宣言公布之后,Scala 的创造者 Martin Odersky Reactive 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.js Knockout Meteor React.js Reactive.coffee RxJS

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

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

2013-08-30 03:024937
用户头像

发布了 256 篇内容, 共 77.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

美丑平等

shengjk1

随笔杂谈

浅析Python中的列表和元组

wangkx

Python python升级

《深度工作》学习笔记(完)

石云升

读书笔记 时间管理 专注 深度工作

网站域名备案怎么做?有哪些快速备案的方法?

姜奋斗

网站 备案 网站搭建 域名解析 网站平台

你看脸吗?

shengjk1

随笔杂谈

奋斗在一线大城市的年轻人的生活工作实录(工厂蓝领篇)

Learun

程序员 软件开发 故事 企业信息化 短片小说

SpringBoot系列(二):如何灵活使用SpringBoot

xcbeyond

Java 微服务 springboot

易观CTO郭炜:如何构建企业级大数据Ad-hoc查询引擎

易观大数据

我国开启“逆袭战”,区块链的盛夏来了?

CECBC

云计算 区块链技术

熬得住,人生路

shengjk1

随笔杂谈

《深度工作》学习笔记(6)

石云升

读书笔记 专注 深度工作

关于微服务架构的一些思考

俊俊哥

微服务

数据平台、大数据平台、数据中台……你确定能分得清吗?

华为云开发者联盟

大数据 数据中台 开发者 数据湖 数据

每个大火的“线上狼人杀”平台,都离不开这个新功能

ZEGO即构

游戏 RTC 社交

SpringBoot系列(三):SpringBoot特性_SpringApplication类(自定义Banner)

xcbeyond

Java 微服务 springboot Banner

流媒体云时代的声与色,融云铺就的桥与路

脑极体

流量明星翻车的“直播卖房”,为什么众盟做成了?

脑极体

Cobra 命令自动补全指北

郭旭东

cobra Go 语言

JAVA位运算

彭阿三

Java 位运算

LeetCode题解:88. 合并两个有序数组,for循环合并数组+sort排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

一文搞懂Flink rocksdb中的数据恢复

shengjk1

大数据 flink源码

DSN 主流项目调研 3——Orbit数据库的故事

AIbot

区块链 分布式存储 IPFS 分布式文件 Orbit

低/零代码会让程序员失业吗?

代码制造者

程序员 低代码 零代码 信息化 编程开发

手抖了

shengjk1

随笔杂谈

Django中的session的使用

BigYoung

django session Cookie

普通工程师简史

郭华

解析中美数字货币竞争战略 | 构建属于“人类命运共同体”的货币体系

CECBC

数字货币 人民币

DSN 主流项目调研 2——Sia和SAFE Network

AIbot

区块链 分布式存储 分布式文件存储 Sia SAFENetwork

别让非理性思维毁了你的人生

看山

随笔杂谈 非理性 认知偏差 自控术

害怕

shengjk1

随笔杂谈

Django查看操作数据库的执行命令

BigYoung

数据库 django 操作

新兴趋势:反应性编程_JavaScript_Dio Synodinos_InfoQ精选文章