BED-Con 2016 - I have a stream - Einsichten in Reactive Programming
-
Upload
jan-carsten-lohmueller -
Category
Education
-
view
249 -
download
0
Transcript of BED-Con 2016 - I have a stream - Einsichten in Reactive Programming
![Page 1: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/1.jpg)
![Page 2: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/2.jpg)
Moin BED-Con!
![Page 3: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/3.jpg)
![Page 4: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/4.jpg)
![Page 5: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/5.jpg)
![Page 6: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/6.jpg)
![Page 7: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/7.jpg)
![Page 8: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/8.jpg)
@wps_de
wps_de
https://www.wps.de
![Page 9: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/9.jpg)
![Page 10: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/10.jpg)
Reactive may refer to:
Generally, capable of having a reaction (disambiguation)
-Wikipedia
![Page 11: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/11.jpg)
Reactive programming is
a programming paradigm…
-Wikipedia
![Page 12: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/12.jpg)
![Page 13: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/13.jpg)
R1.1(V0[:sig]) => R0 R1.2(V0[:m x sig]) => R0 0 => i | m + 1 => j [W [ i < j -> [ R1.1(V0[i: m x sig]) => R0 | i + 1 => i ] ] ] END R1.3() => R0 'H';'e';'l';'l';'o';',';' ';'w';'o';'r';'l';'d';'!' => Z0[: m x sig] R1.2(Z0) => R0 END
![Page 14: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/14.jpg)
![Page 15: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/15.jpg)
OOP to me means
only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
-Alan Kay
![Page 16: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/16.jpg)
OOP to me means
only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
-Alan Kay
![Page 17: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/17.jpg)
![Page 18: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/18.jpg)
![Page 19: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/19.jpg)
Purely functional programming
is different. You don’t tell the computer what to do – you tell him what stuff is.
-Miran Lipovaca
![Page 20: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/20.jpg)
Purely functional programming
is different. You don’t tell the computer what to do – you tell him what stuff is.
-Miran Lipovaca
![Page 21: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/21.jpg)
fib 0 = 0fib 1 = 1fib n = fib (n-1) + fib (n-2)
𝑓1 = 𝑓2 = 1𝑓𝑛 = 𝑓𝑛−1 + 𝑓𝑛−2 für 𝑛 > 2
![Page 22: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/22.jpg)
![Page 23: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/23.jpg)
Reactive programming is
a programming paradigm oriented around data flows and the propagation of change.
-Wikipedia
![Page 24: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/24.jpg)
![Page 25: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/25.jpg)
[ 1, 1, 2, 3, 5, 8, 13 ]
![Page 26: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/26.jpg)
.filter(x -> x%2 == 0)
![Page 27: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/27.jpg)
[ 2, 8 ]
![Page 28: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/28.jpg)
x=100 x=234 x=234 x=144 x=305
y=1 y=634 y=137 y=680 y=32[ , , , , ->
![Page 29: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/29.jpg)
![Page 30: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/30.jpg)
.filter(c -> c.x > 200)
![Page 31: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/31.jpg)
y=634 y=137 y=32
x=234 x=234 x=305[ , , ->
![Page 32: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/32.jpg)
![Page 33: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/33.jpg)
![Page 34: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/34.jpg)
![Page 35: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/35.jpg)
![Page 36: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/36.jpg)
![Page 37: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/37.jpg)
![Page 38: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/38.jpg)
http://reactivex.io/
![Page 39: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/39.jpg)
![Page 40: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/40.jpg)
![Page 41: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/41.jpg)
![Page 42: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/42.jpg)
![Page 43: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/43.jpg)
![Page 44: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/44.jpg)
![Page 45: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/45.jpg)
Subscription s = Observable.just("Hello, world!")
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
// do sth
}
@Override
public void onError(Throwable e) {
// handle error stuff
}
@Override
public void onNext(String s) {
// next!
}
}
);
![Page 46: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/46.jpg)
![Page 47: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/47.jpg)
![Page 48: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/48.jpg)
![Page 49: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/49.jpg)
![Page 50: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/50.jpg)
public class ColdExample {
public static void main(String[] args){
ArrayList<Integer> sampleList = new ArrayList<>();
for(int i = 0; i<5; i++){
sampleList.add(i);
}
Observable.from(sampleList)
.observeOn(Schedulers.computation())
.toBlocking()
.forEach(System.out::println);
}
}
![Page 51: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/51.jpg)
![Page 52: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/52.jpg)
public static Observable<Integer> hotStream() {
return Observable.create((Subscriber<? super Integer> s) -> {
int i = 0;
while (!s.isUnsubscribed()) {
s.onNext(i++);
try {
Thread.sleep((long) (Math.random() * 100));
} catch (Exception e) {
// do nothing
}
}
}).subscribeOn(Schedulers.newThread());
}
taken from https://github.com/jhusain/learnrxjava
![Page 53: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/53.jpg)
![Page 54: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/54.jpg)
![Page 55: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/55.jpg)
![Page 56: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/56.jpg)
![Page 57: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/57.jpg)
![Page 58: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/58.jpg)
![Page 59: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/59.jpg)
![Page 60: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/60.jpg)
http://reactivex.io/languages.html
Java
JavaScript
C#
C#(Unity)
Scala
Clojure
C++
Ruby
Python
Groovy
JRuby
Kotlin
Swift
![Page 61: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/61.jpg)
http://reactivex.io/tutorials.html
2 minute introduction to Rx by André Staltz
A Playful Introduction to Rx a video lecture by Erik Meijer
![Page 62: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/62.jpg)
http://rxmarbles.com/
![Page 63: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/63.jpg)
![Page 64: BED-Con 2016 - I have a stream - Einsichten in Reactive Programming](https://reader031.fdocuments.us/reader031/viewer/2022021502/586f73341a28ab10258b56b1/html5/thumbnails/64.jpg)