Skip to content

libobo102/rp-practice

Repository files navigation

Flow Arch(流式架构) / Reactive Programming(RP/反应式编程) Practice

One way ticket and of life to live, pockets full of sunshine, lots of love to give. -- La La Love On My Mind, Ann Winsborn
体验生命的单程票,装满阳光口袋可以给你许许多多的爱。 —— La La Love On My Mind, Ann Winsborn

因为单程(one-way)的生命,所以我们才能并需要全力生活。

异步(async)的系统,像这首歌一样流畅的节奏停不下来(non-blocking)。

点了链接听听,摇起来~



什么是 Reactive/反应式

Reactive说明了

  • 技术系统应用达成的 期望要求
  • 架构上的 思路理念
  • 技术上的 核心手段

即也是Reactive本身的定义。具体参见:

准备/学习/了解的资料/书籍

全异步化/流式架构 需要 捕捉操作并编排运行(延迟执行)。

  • 捕捉操作需要Java 8 Lambda语法的支持来精简表达。
  • 编排执行表达了业务逻辑。如何有效表达编排(即业务逻辑)对应了 FP上的思路做法。
    • OOP 有效表达了 业务概念(模型/数据)
    • FP 则有效表达了 业务逻辑(流程/转换)
    • 两者互为补充

Java 8

  • 《Java 8实战》:面向Java 8的技能升级,包括Lambdas、流和函数式编程特性。
    • 实战系列的一贯风格让自己快速上手应用起来。
    • Java 8支持的Lambda是精简表达在语法上提供的支持。
    • Java 8提供了Stream,学习和使用可以建立流式编程的认知。
  • 《Java 8函数式编程》
    • Java 8的函数式用法的入门佳作,非常薄148面,简直不敢相信这么小的篇幅讲了这么多内容。
    • 第9章讲并发程序编写,只短短10来面就广度了不少内容,
      几个关键点及其关联异同的讲解闪烁着思辨的光辉,很是精彩! 🌈

RxJava

函数式编程

有哪些相关的类/库

这里列的是比较广泛的相关。使用方式和思考方式是互通的,大家去学习和理解。

1. Java 8Stream

即包java.util.stream

2. ReactiveX(Rx)/RxJava

ReactiveXRx)是 Reactive eXtensionReactive扩展)的缩写。

提供了Reactive编程支持,提供配套设施/工具的实现。

3. Reactive Streams(RS)

Reactive StreamsRS)规范 简单了解 一下就好~
# 在Java中,即是Java9 Flow API。

Reactive的核心设计思路和底层模式,RS只提供的了API(4个接口)及规范(这个接口及其之间的实现契约),不包含实现。

  • 『核心』是指:全能、极简
  • 『底层』是指:比较原始,业务开发一般不会使用直接使用/实现这个API来编写业务逻辑。

Rx是业务开发使用的框架/库,而Reactive Streams是规范API。

Java中,RxJavaReactive Streams的关系,可以类比成:

  • Spring MVCServlet API
  • MyBatisJDBC API

Reactive Streams介绍

Reactive Stream的核心概念及其关系�.

Reactive Stream的时序图.

相关资料

About

Flow Arch(流式架构)/Reactive Programming(RP/反应式编程) 实践

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published