![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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/10.jpg)
Window
![Page 11: Wprowadzenie do RxJava - Toruń JUG · Historia Próba odpowiedzi na: zbyt niski poziom abstrakcji (callback hell) brak kontraktów brak naturalnego modelu komunikacji pojawienie](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/11.jpg)
Źródła, referencje● http://www.reactivemanifesto.org/ ● http://en.wikipedia.
org/wiki/Reactive_programming ● https://github.com/ReactiveX/RxJava ● http://java.dzone.com/articles/whats-wrong-
java-8-part-iv
![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](https://reader034.vdocuments.net/reader034/viewer/2022042223/5ec982a0eb0b9e7be03682bf/html5/thumbnails/12.jpg)
Dziękuję za uwagę
Q&A