Top Banner
Wprowadzenie do RxJava Mikołaj Fejzer
12

Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Wprowadzenie do RxJavaMikołaj Fejzer

Page 2: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Agenda● Programowanie reaktywne

○ historia, założenia○ związek z programowaniem funkcyjnym○ Iterator vs Observer

● RxJava○ backpressure (przeciwciśnienie ?)○ testowanie, debugowanie

● Źródła, referencje

Page 3: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

HistoriaPróba odpowiedzi na:● zbyt niski poziom abstrakcji (callback hell)● brak kontraktów● brak naturalnego modelu komunikacji● pojawienie sie koncepcji wielu

rdzeni/procesorów

Page 4: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Założenia● The Reactive Manifesto

○ Responsive○ Resilient○ Elastic○ Message Driven

● Odwrócenie kontroli

Page 5: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Programowanie funkcyjne?● Obsevable

○ map, flatMap○ reduce, groupBy○ filter, take, skip, last○ zip, merge

● Kompozytowalność strumieni● Modelowanie zachowania● Niezmienność zdarzen

Page 6: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Iterator vs ObserverIterator<E>{

boolean hasNext()

E next()

}

Observer<T>{

void onCompleted()

void onError(Throwable e)

void onNext(T t)

}

Page 7: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Observable

Page 8: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Rx na JVM● Dlaczego na JVM?

○ Rx.NET● Dlaczego RxJava?

○ RxScala○ RxGroovy

● Integracja○ Reactive Streams

Page 9: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Buffer

Page 10: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Window

Page 12: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie

Dziękuję za uwagę

Q&A