Git Product home page Git Product logo

reactive-practice-at-taobao's Introduction

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的时序图.

在软件大会上自己做的主题分享

相关资料

reactive-practice-at-taobao's People

Contributors

oldratlee avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.