• Stars
    star
    441
  • Rank 98,861 (Top 2 %)
  • Language
  • License
    Other
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

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

相关资料

More Repositories

1

useful-scripts

🐌 useful scripts for making developer's everyday life easier and happier, involved java, shell etc.
Shell
6,927
star
2

translations

🐼 Chinese translations for classic IT resources
6,710
star
3

fucking-java-concurrency

🎏 Simple showcases of java concurrency problems, seeing 🙈 is believing 🐵
Java
990
star
4

vim-practice

💘 Vim is awesome! Here is my practice and study log.
Vim Script
555
star
5

software-practice-thoughts

📚 🐣 软件实践文集。主题不限,思考讨论有趣有料就好,包含如 系统的模型分析/量化分析、开源漫游者指南、软件可靠性设计实践、平台产品的逻辑与执行… 🥤
Jupyter Notebook
200
star
6

big-data-study

🐳 big data study
147
star
7

land

🍡 Land is a simple Java™ dependency-isolation container via class loader.
Java
134
star
8

hacker-quotes

🎩 An oh-my-zsh plugin, just print a hacker quote randomly when open a terminal.
Shell
89
star
9

log4j2-ttl-thread-context-map

🌳 Log4j2 TTL ThreadContextMap, Log4j2 extension integrated TransmittableThreadLocal to MDC
Java
77
star
10

tcpip-quiz

tcp/ip quiz
63
star
11

io-api

📐 generic API design example by I/O, the demo implementation of https://dzone.com/articles/generic-inputoutput-api-java
Java
50
star
12

java-modern-tech-practice

😎 Java™ modern tech practice sandbox ⏳
Java
46
star
13

Effective-IntelliJ-IDEA

Effective IntelliJ IDEA
Java
36
star
14

statistics-from-data-to-conclusion-4e

《统计学:从数据到结论》第四版 吴喜之老师 的数据文件与代码 | The data and code files of book "statistics: from data to conclusion, 4th edition"
Jupyter Notebook
35
star
15

data-science-practice

数据科学实践 | data science practice
Jupyter Notebook
27
star
16

deep-learning-math

《深度学习的数学》的随书Excel文件
15
star
17

erlang-practice

💟 Erlang is awesome! Here is my Erlang practice and study log.
14
star
18

objc-singleton

How to implement a SAFE Objective-C Singleton
Objective-C
14
star
19

ios-study-materials

Objective C and iOS study materials
14
star
20

oldratlee

whoami / my profile
13
star
21

java-compiler-demo

Demo project of creating dynamic applications with javax.tools.JavaCompiler
Java
13
star
22

my-zsh-settings

😍 An oh-my-zsh plugin for storing my zsh utils and customization separately
Shell
9
star
23

main-runner

wrap java maven project by command line start script
Shell
8
star
24

scala-maven-template-prj

scala maven template project
Scala
7
star
25

leetcode

my submission code of LeetCode problems
Java
7
star
26

kotlin-coroutines-bottom-up

Complete runnable demo code of article "A Bottom-Up View of Kotlin Coroutines"
Kotlin
7
star
27

oldratlee.github.com

👽 my technology blog
CSS
7
star
28

awesome-command-line-env

☕ Awesome Command Line Env
5
star
29

bash-string-escape

java lib for bash string escape
Java
4
star
30

ios-push-notifications-demo

iOS Push Notifications step-by-step demo
Objective-C
4
star
31

shell-matrix

display matrix effect on console by shell
Shell
4
star
32

scala-underneath

scala underneath
Scala
3
star
33

HelloKt

HelloKt 😸, my kotlin playground 🎡
Kotlin
3
star
34

NSJSONTest

测试NSJSONSerialization中Value的类型是否和JSON中声明一致,即类型稳定性
Objective-C
3
star
35

intellij-postfix-templates

my intellij postfix templates
2
star
36

java-tips

the demo code of inner class tips and usage
Java
2
star
37

doulist-wrong-counter-analysis

计数不对的『豆瓣豆列』抓取
Jupyter Notebook
2
star
38

do-btrace

btrace start-up template project
Java
1
star
39

akka-quickstart-scala

akka-quickstart-scala
Batchfile
1
star
40

cats-playground

playground for cats (and other cool scala libs)
Scala
1
star