写点什么

新兴趋势:反应性编程

  • 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:024786
用户头像

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

关注

评论

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

打造一个全功能的浏览器

Daniel

架构师第一期作业(第三周)

Cheer

作业

线段树(Segment Tree)

zayfen

算法 线段树 segment tree

为什么90%的“码农”做不了软件“架构师”?

Java架构师迁哥

Java 学习 架构师

架构师训练营第三周作业

文智

极客大学架构师训练营

腾讯云大数据发布最新产品矩阵,助力企业整合打通海量数据

腾讯云大数据

大数据

用go语言实现快排

Sean

算法 快速排序 Go 语言

原创视频 | 架构漫谈—如何创造复杂而有序的软件系统【含课件下载】

编程道与术

Java 编程 架构 软件开发 软件架构

原创 | 正确区分属性和字段

编程道与术

Java hibernate 编程 软件开发 jpa

jdk 源码系列之StringBuilder、StringBuffer

sinsy

Java jdk 源码解析

Greenplum 性能优化之路 --(一)分区表

腾讯云大数据

大数据

倒计时!Pulsar Summit Asia 2020 演讲征集

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

看看别人是怎么面试蚂蚁金服的!社招Java面经分享

Java架构师迁哥

Java 阿里巴巴 面试 蚂蚁金服

一次注定失败的裸面

escray

ruby 程序员 面试 面经

你在开发过程中使用Git Rebase还是Git Merge?

华为云开发者联盟

git 华为 管理 代码

原创 | 使用JPA实现DDD持久化-O/R阻抗失配(2/2)

编程道与术

Java hibernate DDD JDBC jpa

架构师训练营第三周学习总结

邓昀垚

极客大学架构师训练营

第二周-学习总结-框架设计原则

莫森

极客大学架构师训练营

LeetCode题解:641. 设计循环双端队列,使用双向链表,JavaScript,详细注释

Lee Chen

大前端 LeetCode

揭开500亿“区块链”骗局

CECBC

法律 传销

持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

腾讯云大数据

大数据

数字货币视域下的金融安全实现路径

CECBC

区块链 数字货币

第二周-命题作业

莫森

极客大学架构师训练营

手把手教你:将 ClickHouse 集群迁至云上

腾讯云大数据

大数据 Clickhouse

腾讯云副总裁刘煜宏:大数据平台算力弹性资源池达500万核,国内最强

腾讯云大数据

大数据

原创 | 使用JPA实现DDD持久化-JPA vs MyBatis

编程道与术

Java hibernate 编程 mybatis jpa

致谢!华为全联接2020精彩回顾

华为云开发者联盟

华为 华为云 智能 hdc

为什么推广ipv6以及网站ipv6改造基本步骤

MySQL从删库到跑路

Web IP 网络

区块链带来的技术创新和变革

CECBC

区块链技术 经济

原创 | 使用JPA实现DDD持久化-JPA,Hibernate与Spring Data JPA

编程道与术

Java hibernate Spring C Data jpa

华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?

华为云开发者联盟

数据库 数据 gauss db

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