【发布时间】:2014-01-12 02:51:34
【问题描述】:
我想了解是否可以使用非函数式语言来实现响应式应用程序宣言背后的原则。
有人说,由于 FP 使用不可变状态和免费的副作用函数,它们更容易实现并发、分布式和弹性系统。
但是我们如何使用 Java 来实现呢?
有一些框架,如 Apache Camel,有一些组件可供使用,如 Camel RX 和 Camel SEDA。
这些框架够吗?
我会尽量澄清我的问题:
我认为反应式编程是一种新的编程范式,一种新的编程范式需要新的工具和框架。
函数式语言处理对象的方式不同,这就是为什么有很多关于 FRP 处理基于事件和异步的文章的原因。
但是现在,回到 Java 或其他面向对象的语言,让我们在 Web 应用程序中思考:
- 我们怎样才能创建一个Java Web应用程序,利用好 基于事件的前端。
- 然后这些事件以平滑的方式异步将信息传递到后端。
- 后端可以轻松扩展并且具有弹性。
我知道使用 java、servlet 和 EJB 创建满足这些要求的应用程序是可能的,但我的问题是,我们可以用不同的方式来做吗? 更接近于被动方法?
我是这样想的:
- 前端一个不错的ajax框架,让后端“传递信息”顺畅。
- 在后端使用框架或库(Camel SEDA 或 Camel RX)并行执行事物的方法。
你认为这是一个好方法吗?
【问题讨论】:
-
你知道RxJava吗?
-
感谢您回复 @TheTerribleSwiftTomato 。我已经阅读了一些关于它的内容。但这足够了吗?我可以将它用作我的项目中的库并获得一些被认为是反应性的质量属性吗?
-
查看答案。 tl;博士 - 是的。
-
这个问题似乎跑题了,因为它不是解决编程时遇到的问题。
-
另外:真的是“宣言”吗?这就像我们现在正在做的事情吗?为什么不真正做最难的部分并写一些实用且可操作的东西。 (见:12factor.net)
标签: java functional-programming apache-camel reactive-programming