Git Product home page Git Product logo

oldratlee / reactive-practice-at-taobao Goto Github PK

View Code? Open in Web Editor NEW
466.0 29.0 89.0 76.95 MB

♨️ Reactive @ 淘宝 | Reactive实践、推动、落地的记录与大会分享 | Flow Arch(流式架构)/Reactive Programming(RP/反应式编程)

Home Page: https://github.com/oldratlee/taobao-reactive-practice

License: Other

flow reactive reactive-programming flow-oriented-ha flow-arch rp taobao stability java rxjava

reactive-practice-at-taobao's Introduction

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

知识共享协议(CC协议) Licence: CC BY-NC-SA 4.0
GitHub stars GitHub forks GitHub watchers

LaLaLoveOnMyMind-AnnWinsborn.jpg

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-red.png

什么是 Reactive/反应式

Reactive说明了

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

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

model-reactive-manifesto

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

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

  • 捕捉操作需要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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reactive-practice-at-taobao's Issues

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.