【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

新兴趋势:反应性编程

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

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

关注

评论

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

Week 4命题作业

balsamspear

极客大学架构师训练营

Docker架构

混沌畅想

Docker 容器 Docker架构

【得物技术】谈谈缓存的一二三四五

得物技术

缓存 架构 技术 缓存穿透 缓存击穿

C/C++最佳实践

jiangling500

c c++ 最佳实践

week04总结

xxx

Linux内核系统结构

Linux 操作系统 内核 系统调用 操作系统结构

架构师训练营第2期 第1周 作业一:食堂就餐卡系统设计

老腊肉

一文搞懂ReactNative生命周期的进化

凌宇之蓝

react.js 面试 大前端 React Native

Scikit-Learn中的特征排名与递归特征消除

计算机与AI

学习 数据科学 特征选择 降维 scikit-learn

分布式文件存储数据库 MongoDB

哈喽沃德先生

数据库 nosql mongodb mongo 非关系型数据库

勾魂!在Github白嫖左程云1470页数据结构与算法+视频

996小迁

Java 架构 面试

分布式缓存架构,消息队列,负载均衡

garlic

极客大学架构师训练营

java安全编码指南之:线程安全规则

程序那些事

java安全编码 java安全 java安全编码指南 java代码规范 java代码安全

Java中的5大队列,你知道几个?

王磊

Java

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

小黄鱼

极客大学架构师训练营

一文带你读懂 Swift 社区最新开源的算法库

镜画者

ios swift 算法 apple

6小时搞定云原生:从基础概念到上手实践

京东科技开发者

云原生

epoll服务器解析

菜鸟小sailor 🐕

一文读懂线程池的工作原理(故事白话文)

捡田螺的小男孩

Java 面试 线程池 线程池工作原理

c++bind函数使用

良知犹存

c++

架构作业:一致性hash

Nick~毓

服了,这款开源类库可以帮你简化每一行代码

沉默王二

Java GitHub 后端 hutool

编码之路,与君共勉

yes

程序人生

一份超级完整实用的PyCharm图解教程,8K字赶紧收藏起来

计算机与AI

Python IDLE 开发环境

1024!奈学教育致敬程序员3+2战略发布会重磅来袭

奈学教育

1024 奈学教育

Week 4学习总结

balsamspear

极客大学架构师训练营

week04 作业

xxx

甲方日常 36

句子

工作 随笔杂谈 日常

spring-boot-route(二十三)开发微信公众号

Java旅途

Java Spring Boot

架构师训练营第2期 第1周 作业二:学习总结.md

老腊肉

iOS性能优化 — 二、卡顿监控及处理

iOSer

性能优化 编程语言 监控 ios开发 卡顿

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