响应式编程是一种通用编程术语,它主要用于对更改\(如数据值或事件\)进行响应。它可以而且经常是表现为命令式的。回调就是一种命令式的方式去实现响应式编程。电子表格是响应式编程的一个很好的例子:当其他单元格发生变化时,依赖它的单元格会自动的“响应”数据的变化。

在今天的计算机上的任何事,当某一时刻它击中了操作系统和硬件时候,它都是命令式的。计算机必须明确告知需要做什么以及如何做。人类不像cpu和相关系统那样思考,因此我们添加抽象。Reactive-functional式编程就是一种抽象,就像我们的高级命令式编程习惯一样,它们也是对于底层二进制和程序集指令的抽象。事实是,一切都是命令式的,这一点很重要,要记住和理解,它帮助我们了解什么是响应式函数式编程的思维模式,以及它是如何最终执行的,没有什么神奇的。

因此,Reactive-functional编程是一种编程的方法——在命令式系统之上的抽象——允许我们在无需像计算机本身一样思考和命令式的定义状态的复杂交互的情况下,对异步和事件驱动的用例进行编程,特特别是跨线程和网络边界。当涉及到异步和事件驱动的系统时,不需要像计算机一样思考是一个有用的特性,因为涉及到concurrency(并发性)和parallelism(并行性),这些都是非常具有挑战性的特性,而正确并高效的使用这些特性是富有难度的。在Java社区中,Brian Goetz和Doug Lea\(addison - wesley\)在《Java Concurrency in Practice》,以及诸如“Mechanical Sympathy”之类的论坛,都是掌握并发性的深度、广度和复杂性的代表。自从我开始使用RxJava以来,我与来自这些书籍、论坛和社区的专家的互动使我更加确信编写高性能、高效、可伸缩和正确的并发软件有多么困难。我们甚至还没有引入分布式系统,而分布式系统它会将并发性和并行性带到另一个更高层次。

因此,对于什么是Reactive-functional编程,简单的回答就是并发性和并行性。更通俗地说,它是使用回调,以一种命令式的方式来处理响应式和异步的用例。由RxJava实现的响应式编程受函数式编程的影响,并使用声明式的方法来避免响应式命令代码的典型缺陷。

results matching ""

    No results matching ""