Event Driven - Node.JS
-
Upload
mbild -
Category
Technology
-
view
618 -
download
0
description
Transcript of Event Driven - Node.JS
![Page 1: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/1.jpg)
EVENT DRIVENNODEJS
Donnerstag, 27. Juni 13
![Page 2: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/2.jpg)
ÜBER MICH
‣ JavaScript Nerd
‣ C/C++/C# Entwickler
‣ Berliner
‣ Tech Startups
@mikebild / Software Engineer
Donnerstag, 27. Juni 13
![Page 3: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/3.jpg)
init()
setup()
run()
cleanup()
end()
sync
Donnerstag, 27. Juni 13
![Page 4: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/4.jpg)
init()
setup()
run()
cleanup()
end()
sync
0
1
2
3
4
Donnerstag, 27. Juni 13
![Page 5: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/5.jpg)
async
init()0
setup()1
run()2
cleanup()3
end()4
Donnerstag, 27. Juni 13
![Page 6: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/6.jpg)
async
init()0 setup()1
run()2
cleanup()3
end()4
Donnerstag, 27. Juni 13
![Page 7: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/7.jpg)
async
init()0 setup()1 run()2
cleanup()3
end()4
Donnerstag, 27. Juni 13
![Page 8: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/8.jpg)
async
init()0 setup()1 run()2 cleanup()3
end()4
Donnerstag, 27. Juni 13
![Page 9: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/9.jpg)
async
init()0 setup()1 run()2 cleanup()3 end()4
Donnerstag, 27. Juni 13
![Page 10: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/10.jpg)
ASYNC !== POSITION
Donnerstag, 27. Juni 13
![Page 11: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/11.jpg)
ASYNC === ZEIT
Donnerstag, 27. Juni 13
![Page 12: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/12.jpg)
KONTROLLFLUSS === undefined
???
Donnerstag, 27. Juni 13
![Page 13: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/13.jpg)
init(setup(
run(cleanup(
end())
))
)
Donnerstag, 27. Juni 13
![Page 14: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/14.jpg)
???
Donnerstag, 27. Juni 13
![Page 15: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/15.jpg)
CONTINUATION
???
Donnerstag, 27. Juni 13
![Page 16: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/16.jpg)
CALLBACKSCONTINUATION
???
Donnerstag, 27. Juni 13
![Page 17: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/17.jpg)
FIRST-CLASS FUNCTIONS
Donnerstag, 27. Juni 13
![Page 18: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/18.jpg)
FIRST-CLASS FUNCTIONS‣ Funktionen sind Objekte
Donnerstag, 27. Juni 13
![Page 19: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/19.jpg)
FIRST-CLASS FUNCTIONS‣ Funktionen sind Objekte
‣ Variablenzuweisung
Donnerstag, 27. Juni 13
![Page 20: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/20.jpg)
FIRST-CLASS FUNCTIONS‣ Funktionen sind Objekte
‣ Variablenzuweisung
‣ Parameter
Donnerstag, 27. Juni 13
![Page 21: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/21.jpg)
FIRST-CLASS FUNCTIONS‣ Funktionen sind Objekte
‣ Variablenzuweisung
‣ Parameter
‣ Rückgabewert
Donnerstag, 27. Juni 13
![Page 22: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/22.jpg)
FIRST-CLASS FUNCTIONS‣ Funktionen sind Objekte
‣ Variablenzuweisung
‣ Parameter
‣ Rückgabewert
‣ Funktionen haben Eigenschaften und Methoden
Donnerstag, 27. Juni 13
![Page 23: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/23.jpg)
FIRST-CLASS FUNCTIONS
Donnerstag, 27. Juni 13
![Page 24: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/24.jpg)
non-blocking
Donnerstag, 27. Juni 13
![Page 25: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/25.jpg)
non-blocking
???
Donnerstag, 27. Juni 13
![Page 26: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/26.jpg)
non-blocking
???
Donnerstag, 27. Juni 13
![Page 27: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/27.jpg)
SCOPE
non-blocking
???
Donnerstag, 27. Juni 13
![Page 28: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/28.jpg)
SCOPE
non-blocking
IMMEDIATE FUNCTIONS
???
Donnerstag, 27. Juni 13
![Page 29: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/29.jpg)
SCOPE
non-blocking
IMMEDIATE FUNCTIONSCLOSURES
???
Donnerstag, 27. Juni 13
![Page 30: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/30.jpg)
<3 KONZEPTE
Donnerstag, 27. Juni 13
![Page 31: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/31.jpg)
SCOPE
‣ Gültigkeitsbereich von Variablen
‣ privat innerhalb von Funktionen
‣ das this innerhalb der Funktion
Donnerstag, 27. Juni 13
![Page 32: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/32.jpg)
IMMEDIATE FUNCTIONS
Donnerstag, 27. Juni 13
![Page 33: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/33.jpg)
IMMEDIATE FUNCTIONS
Deklaration und unmittelbare Ausführung
Donnerstag, 27. Juni 13
![Page 34: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/34.jpg)
CLOSURES
Donnerstag, 27. Juni 13
![Page 35: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/35.jpg)
CLOSURES
‣ umschließen Gültigkeitsbereich für Variablen
Donnerstag, 27. Juni 13
![Page 36: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/36.jpg)
CLOSURES
‣ umschließen Gültigkeitsbereich für Variablen
‣ „einfrieren“ von Werten in Variablen
Donnerstag, 27. Juni 13
![Page 37: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/37.jpg)
CLOSURES
‣ umschließen Gültigkeitsbereich für Variablen
‣ „einfrieren“ von Werten in Variablen
‣ private Variablen
Donnerstag, 27. Juni 13
![Page 38: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/38.jpg)
CLOSURES
‣ umschließen Gültigkeitsbereich für Variablen
‣ „einfrieren“ von Werten in Variablen
‣ private Variablen
‣ „konfigurierbare“ Funktionen
Donnerstag, 27. Juni 13
![Page 39: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/39.jpg)
CLOSURESSCOPE - private Variablen
Donnerstag, 27. Juni 13
![Page 40: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/40.jpg)
CLOSURES„konfigurierbare“ Funktionen
Donnerstag, 27. Juni 13
![Page 41: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/41.jpg)
SCOPE CLOSURE
???
Donnerstag, 27. Juni 13
![Page 42: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/42.jpg)
SCOPE CLOSURE
YEAH!???
Donnerstag, 27. Juni 13
![Page 43: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/43.jpg)
(RE)BIND SCOPE
Donnerstag, 27. Juni 13
![Page 44: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/44.jpg)
(RE)BIND SCOPEOUTER
Donnerstag, 27. Juni 13
![Page 45: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/45.jpg)
(RE)BIND SCOPEOUTER INNER
Donnerstag, 27. Juni 13
![Page 46: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/46.jpg)
(RE)BIND SCOPEOUTER INNER
Donnerstag, 27. Juni 13
![Page 47: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/47.jpg)
BLOCKINGVS.
NON-BLOCKING
Donnerstag, 27. Juni 13
![Page 48: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/48.jpg)
Donnerstag, 27. Juni 13
![Page 49: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/49.jpg)
Donnerstag, 27. Juni 13
![Page 50: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/50.jpg)
ARBEIT
Donnerstag, 27. Juni 13
![Page 51: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/51.jpg)
WARTEN
ARBEIT
Donnerstag, 27. Juni 13
![Page 52: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/52.jpg)
WARTEN
ARBEIT
Donnerstag, 27. Juni 13
![Page 53: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/53.jpg)
WARTEN
Donnerstag, 27. Juni 13
![Page 54: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/54.jpg)
Donnerstag, 27. Juni 13
![Page 55: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/55.jpg)
FERTIG
Donnerstag, 27. Juni 13
![Page 56: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/56.jpg)
Donnerstag, 27. Juni 13
![Page 57: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/57.jpg)
Donnerstag, 27. Juni 13
![Page 58: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/58.jpg)
Donnerstag, 27. Juni 13
![Page 59: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/59.jpg)
BLOCKING
Donnerstag, 27. Juni 13
![Page 60: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/60.jpg)
???GESCHWINDIGKEIT
Donnerstag, 27. Juni 13
![Page 61: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/61.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 62: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/62.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 63: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/63.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 64: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/64.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 65: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/65.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 66: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/66.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 67: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/67.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 68: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/68.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 69: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/69.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 70: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/70.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 71: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/71.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 72: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/72.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 73: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/73.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 74: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/74.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 75: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/75.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 76: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/76.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 77: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/77.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 78: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/78.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 79: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/79.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 80: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/80.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 81: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/81.jpg)
THREADS
Donnerstag, 27. Juni 13
![Page 82: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/82.jpg)
‣ Reaktionsfähig
THREADS
Donnerstag, 27. Juni 13
![Page 83: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/83.jpg)
‣ Reaktionsfähig
‣ Skalierbar
THREADS
Donnerstag, 27. Juni 13
![Page 84: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/84.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ ABER
THREADS
Donnerstag, 27. Juni 13
![Page 85: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/85.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ ABER
‣ hoher Aufwand
THREADS
Donnerstag, 27. Juni 13
![Page 86: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/86.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ ABER
‣ hoher Aufwand
‣ viel Koordination
THREADS
Donnerstag, 27. Juni 13
![Page 87: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/87.jpg)
TEUER
Donnerstag, 27. Juni 13
![Page 88: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/88.jpg)
IDEEN?
Donnerstag, 27. Juni 13
![Page 89: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/89.jpg)
NEUER ABLAUF
Donnerstag, 27. Juni 13
![Page 90: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/90.jpg)
NON-BLOCKING
Donnerstag, 27. Juni 13
![Page 91: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/91.jpg)
Donnerstag, 27. Juni 13
![Page 92: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/92.jpg)
Donnerstag, 27. Juni 13
![Page 93: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/93.jpg)
Donnerstag, 27. Juni 13
![Page 94: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/94.jpg)
Donnerstag, 27. Juni 13
![Page 95: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/95.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 96: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/96.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 97: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/97.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 98: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/98.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 99: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/99.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 100: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/100.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 101: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/101.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 102: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/102.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 103: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/103.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 104: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/104.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 105: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/105.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 106: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/106.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 107: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/107.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 108: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/108.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 109: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/109.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 110: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/110.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 111: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/111.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 112: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/112.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 113: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/113.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 114: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/114.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 115: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/115.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 116: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/116.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 117: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/117.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 118: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/118.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 119: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/119.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 120: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/120.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 121: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/121.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 122: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/122.jpg)
Benachrichtigen Sie mich,sobald Sie fertig sind.
Donnerstag, 27. Juni 13
![Page 123: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/123.jpg)
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 124: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/124.jpg)
‣ Reaktionsfähig
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 125: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/125.jpg)
‣ Reaktionsfähig
‣ Skalierbar
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 126: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/126.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ UND
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 127: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/127.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ UND
‣ EINFACH
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 128: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/128.jpg)
‣ Reaktionsfähig
‣ Skalierbar
‣ UND
‣ EINFACH
‣ GÜNSTIG
EVENT DRIVEN
Donnerstag, 27. Juni 13
![Page 129: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/129.jpg)
GESCHWINDIGKEIT?
Donnerstag, 27. Juni 13
![Page 130: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/130.jpg)
I/O GESCHWINDIGKEIT
http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait
5ns 50ns 5ms 50ms
CPU-Register0.33ns
L1-Cache1ns L2-Cache
4.7ns
RAM83ns
HDD-Seek13.7ms
NETWORK80ms
Donnerstag, 27. Juni 13
![Page 131: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/131.jpg)
WARTEN
Donnerstag, 27. Juni 13
![Page 132: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/132.jpg)
NODE.JS
Donnerstag, 27. Juni 13
![Page 133: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/133.jpg)
I/O MODULEfile, http, net ...
BLOCKING NON-BLOCKING
Donnerstag, 27. Juni 13
![Page 134: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/134.jpg)
I/O MODULEfile, http, net ...
BLOCKING NON-BLOCKING
UNTERSCHIEDE
Donnerstag, 27. Juni 13
![Page 135: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/135.jpg)
BLOCKING
Donnerstag, 27. Juni 13
![Page 136: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/136.jpg)
BLOCKING
‣ Prozess blockiert während des Aufrufes
Donnerstag, 27. Juni 13
![Page 137: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/137.jpg)
BLOCKING
‣ Prozess blockiert während des Aufrufes
‣ wird erst fortgesetzt, wenn Ergebnis verfügbar ist
Donnerstag, 27. Juni 13
![Page 138: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/138.jpg)
NON-BLOCKING
Donnerstag, 27. Juni 13
![Page 139: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/139.jpg)
NON-BLOCKING
‣ Prozess kann weiter arbeiten
Donnerstag, 27. Juni 13
![Page 140: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/140.jpg)
NON-BLOCKING
‣ Prozess kann weiter arbeiten
‣ während die Daten im Hintergrund geladen werden
Donnerstag, 27. Juni 13
![Page 141: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/141.jpg)
NON-BLOCKING I/O
Donnerstag, 27. Juni 13
![Page 142: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/142.jpg)
NON-BLOCKING I/O
‣ Funktionen ohne „direkte“ Rückgabewerte
Donnerstag, 27. Juni 13
![Page 143: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/143.jpg)
NON-BLOCKING I/O
‣ Funktionen ohne „direkte“ Rückgabewerte
‣ „callbacks“ sind „continuations“ zur Fortsetzung des Programmablaufs
Donnerstag, 27. Juni 13
![Page 144: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/144.jpg)
NON-BLOCKING I/O
‣ Funktionen ohne „direkte“ Rückgabewerte
‣ „callbacks“ sind „continuations“ zur Fortsetzung des Programmablaufs
‣ Background-Tasks machen die Arbeit
Donnerstag, 27. Juni 13
![Page 145: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/145.jpg)
NON-BLOCKING I/O
‣ Funktionen ohne „direkte“ Rückgabewerte
‣ „callbacks“ sind „continuations“ zur Fortsetzung des Programmablaufs
‣ Background-Tasks machen die Arbeit
‣ keine Wartezeit im Programmablauf
Donnerstag, 27. Juni 13
![Page 146: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/146.jpg)
EVENTS
Donnerstag, 27. Juni 13
![Page 147: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/147.jpg)
Donnerstag, 27. Juni 13
![Page 148: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/148.jpg)
‣ Frontend
‣ user interaction-events: mouse*, key*
‣ timer events: setTimeout
Donnerstag, 27. Juni 13
![Page 149: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/149.jpg)
‣ Frontend
‣ user interaction-events: mouse*, key*
‣ timer events: setTimeout
Donnerstag, 27. Juni 13
![Page 150: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/150.jpg)
‣ Frontend
‣ user interaction-events: mouse*, key*
‣ timer events: setTimeout
‣ Backend
‣ I/O-events: networking, filesystem
‣ custom-events
Donnerstag, 27. Juni 13
![Page 151: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/151.jpg)
EVENTS
Donnerstag, 27. Juni 13
![Page 152: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/152.jpg)
‣ Ereignisse auf die reagiert werden
EVENTS
Donnerstag, 27. Juni 13
![Page 153: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/153.jpg)
‣ Ereignisse auf die reagiert werden
‣ viele Sender (üblicherweise nur einer)
EVENTS
Donnerstag, 27. Juni 13
![Page 154: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/154.jpg)
‣ Ereignisse auf die reagiert werden
‣ viele Sender (üblicherweise nur einer)
‣ viele Empfänger
EVENTS
Donnerstag, 27. Juni 13
![Page 155: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/155.jpg)
EVENT HANDLING
Donnerstag, 27. Juni 13
![Page 156: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/156.jpg)
callback(DATA)
Donnerstag, 27. Juni 13
![Page 157: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/157.jpg)
‣ vereinfachte Form der Event-Verarbeitung
‣ wird anstelle eines return-Wertes aufgerufen
‣ NODE.JS Konvention:
function callback(err, data) {}
callback(DATA)
Donnerstag, 27. Juni 13
![Page 158: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/158.jpg)
EVENT EMITTER
Donnerstag, 27. Juni 13
![Page 159: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/159.jpg)
‣ Event-Quelle und Dispatcher
‣ Empfänger werden mit on('NAME', callback) angemeldet
‣ Events werden mit emit() ausgelöst
‣ Events werden nur an die angemeldeten Empfänger im Event-Emitter gesendet
EVENT EMITTER
Donnerstag, 27. Juni 13
![Page 160: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/160.jpg)
EVENT EMITTER
Donnerstag, 27. Juni 13
![Page 161: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/161.jpg)
EVENT-LOOPARCHITEKTUR
Donnerstag, 27. Juni 13
![Page 162: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/162.jpg)
‣Event-Handler registrieren‣Anwendung starten
1
Bearbeitet„lang laufenden“ Aufgaben
2
WORKER THREADSWORKER THREADSWORKER THREADS
MAIN PROCESS
C++ Thread-Pool
Donnerstag, 27. Juni 13
![Page 163: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/163.jpg)
‣Event-Loop startet‣wartet auf Events
3
EVENT-LOOP
MAIN PROCESS
WORKER THREADSWORKER THREADSWORKER THREADS
Donnerstag, 27. Juni 13
![Page 164: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/164.jpg)
Meldet „Daten“-Rückgaben als Events
4
EVENT-LOOP
MAIN PROCESS
WORKER THREADSWORKER THREADSWORKER THREADS
➡ fs.data➡ fs.end➡http.request➡ ...➡ ...
EVENTQUEUE
Donnerstag, 27. Juni 13
![Page 165: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/165.jpg)
Dispatcher führtfür jeden EVENTden registriertenCALLBACK im
MAIN PROZESS aus
5EVENT-LOOP
MAIN PROCESS
WORKER THREADSWORKER THREADSWORKER THREADS
➡ fs.data➡ fs.end➡http.request
EVENTQUEUE
DISPATCH
Donnerstag, 27. Juni 13
![Page 166: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/166.jpg)
✓in nur einem Prozess
✓Single-Thread innerhalb von NODE.JS
✓keine Parallelisierung, sondern Non-Blocking
✓Event-Verarbeitung in Reihenfolge der Erzeugung
✓einfaches Modell
✓Skalierung über separate Prozesse (CPU-Intensive Tasks)
✓zwingt zum asynchronem Denken und Code
EVENT LOOP
Donnerstag, 27. Juni 13
![Page 167: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/167.jpg)
BEISPIEL
WEB SERVER
Donnerstag, 27. Juni 13
![Page 168: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/168.jpg)
Donnerstag, 27. Juni 13
![Page 169: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/169.jpg)
NEVER BLOCK
Donnerstag, 27. Juni 13
![Page 170: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/170.jpg)
Donnerstag, 27. Juni 13
![Page 171: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/171.jpg)
YEAH
Donnerstag, 27. Juni 13
![Page 172: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/172.jpg)
EVENT EMITTER
Donnerstag, 27. Juni 13
![Page 173: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/173.jpg)
Donnerstag, 27. Juni 13
![Page 174: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/174.jpg)
STREAMS
Donnerstag, 27. Juni 13
![Page 175: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/175.jpg)
CHILD-PROZESS
Donnerstag, 27. Juni 13
![Page 176: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/176.jpg)
WENNS MAL LÄNGER DAUERT
Donnerstag, 27. Juni 13
![Page 177: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/177.jpg)
WENNS MAL LÄNGER DAUERT
✓„split and defer“ - setTimeout(continuation, 0);
Donnerstag, 27. Juni 13
![Page 178: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/178.jpg)
WENNS MAL LÄNGER DAUERT
✓„split and defer“ - setTimeout(continuation, 0);
✓EventEmitter
Donnerstag, 27. Juni 13
![Page 179: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/179.jpg)
WENNS MAL LÄNGER DAUERT
✓„split and defer“ - setTimeout(continuation, 0);
✓EventEmitter
✓child-process
Donnerstag, 27. Juni 13
![Page 180: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/180.jpg)
WENNS MAL LÄNGER DAUERT
✓„split and defer“ - setTimeout(continuation, 0);
✓EventEmitter
✓child-process
✓STREAMS
Donnerstag, 27. Juni 13
![Page 181: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/181.jpg)
BEISPIEL
Donnerstag, 27. Juni 13
![Page 182: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/182.jpg)
Donnerstag, 27. Juni 13
![Page 183: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/183.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
Donnerstag, 27. Juni 13
![Page 184: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/184.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
Donnerstag, 27. Juni 13
![Page 185: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/185.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
Donnerstag, 27. Juni 13
![Page 186: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/186.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
Donnerstag, 27. Juni 13
![Page 187: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/187.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
Donnerstag, 27. Juni 13
![Page 188: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/188.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
Donnerstag, 27. Juni 13
![Page 189: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/189.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
‣ Der Gast füllt die Formulare aus
Donnerstag, 27. Juni 13
![Page 190: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/190.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
‣ Der Gast füllt die Formulare aus
‣ Der Gast übergibt die ausgefüllten Formulare an den Rezeptionist
Donnerstag, 27. Juni 13
![Page 191: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/191.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
‣ Der Gast füllt die Formulare aus
‣ Der Gast übergibt die ausgefüllten Formulare an den Rezeptionist
Donnerstag, 27. Juni 13
![Page 192: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/192.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
‣ Der Gast füllt die Formulare aus
‣ Der Gast übergibt die ausgefüllten Formulare an den Rezeptionist
‣ Rezeptionist überprüft die erhaltenen Formulare
Donnerstag, 27. Juni 13
![Page 193: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/193.jpg)
‣ Ein Gast betritt den Empfang eines Hotels
‣ Rezeptionist begrüßt den Gast
‣ Rezeptionist übergibt ein Anmeldeformular
‣ Rezeptionist übergibt ein Zahlungsformular
‣ Rezeptionist kann weitere Gäste empfangen
‣ Der Gast füllt die Formulare aus
‣ Der Gast übergibt die ausgefüllten Formulare an den Rezeptionist
‣ Rezeptionist überprüft die erhaltenen Formulare
‣ Gast bekommt seinen Zimmerschlüssel, oder muss das/die Formulare nochmals ausfüllen
Donnerstag, 27. Juni 13
![Page 194: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/194.jpg)
SYNC
Donnerstag, 27. Juni 13
![Page 195: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/195.jpg)
SYNC
Donnerstag, 27. Juni 13
![Page 196: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/196.jpg)
‣ nur 1 Gast je Rezeptionisten
SYNC
Donnerstag, 27. Juni 13
![Page 197: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/197.jpg)
‣ nur 1 Gast je Rezeptionisten
‣ X gleichzeitige Gäste brauchen X Rezeptionisten (= Threads)
SYNC
Donnerstag, 27. Juni 13
![Page 198: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/198.jpg)
‣ nur 1 Gast je Rezeptionisten
‣ X gleichzeitige Gäste brauchen X Rezeptionisten (= Threads)
‣ Rezeptionisten und Gast warten (= Locking)
SYNC
Donnerstag, 27. Juni 13
![Page 199: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/199.jpg)
‣ nur 1 Gast je Rezeptionisten
‣ X gleichzeitige Gäste brauchen X Rezeptionisten (= Threads)
‣ Rezeptionisten und Gast warten (= Locking)
‣ wenn mehr Gäste als Rezeptionisten: Warteschlange am Eingang
SYNC
Donnerstag, 27. Juni 13
![Page 200: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/200.jpg)
‣ nur 1 Gast je Rezeptionisten
‣ X gleichzeitige Gäste brauchen X Rezeptionisten (= Threads)
‣ Rezeptionisten und Gast warten (= Locking)
‣ wenn mehr Gäste als Rezeptionisten: Warteschlange am Eingang
‣ oder ständig "schlafende" Rezeptionisten
SYNC
Donnerstag, 27. Juni 13
![Page 201: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/201.jpg)
ASYNC
Donnerstag, 27. Juni 13
![Page 202: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/202.jpg)
ASYNC
Donnerstag, 27. Juni 13
![Page 203: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/203.jpg)
‣ nur 1 Rezeptionist für X Gäste
ASYNC
Donnerstag, 27. Juni 13
![Page 204: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/204.jpg)
‣ nur 1 Rezeptionist für X Gäste
‣ zu viele Gäste führen nur zur langsameren Ausführung nicht zur Blocking
ASYNC
Donnerstag, 27. Juni 13
![Page 205: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/205.jpg)
‣ nur 1 Rezeptionist für X Gäste
‣ zu viele Gäste führen nur zur langsameren Ausführung nicht zur Blocking
‣ Lange Aktionen werden von Background-Services erledigt
ASYNC
Donnerstag, 27. Juni 13
![Page 206: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/206.jpg)
‣ nur 1 Rezeptionist für X Gäste
‣ zu viele Gäste führen nur zur langsameren Ausführung nicht zur Blocking
‣ Lange Aktionen werden von Background-Services erledigt
‣ jegliche Aktion wird über Events ausgelöst
ASYNC
Donnerstag, 27. Juni 13
![Page 207: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/207.jpg)
‣ nur 1 Rezeptionist für X Gäste
‣ zu viele Gäste führen nur zur langsameren Ausführung nicht zur Blocking
‣ Lange Aktionen werden von Background-Services erledigt
‣ jegliche Aktion wird über Events ausgelöst
‣ Rezeptionisten sind nicht untätig
ASYNC
Donnerstag, 27. Juni 13
![Page 208: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/208.jpg)
ABER
Donnerstag, 27. Juni 13
![Page 209: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/209.jpg)
KOMPLIZIERT
Donnerstag, 27. Juni 13
![Page 210: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/210.jpg)
CALLBACK HELL
Donnerstag, 27. Juni 13
![Page 211: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/211.jpg)
https://npmjs.org/package/cflow
FLOW
Donnerstag, 27. Juni 13
![Page 212: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/212.jpg)
https://github.com/creationix/step
STEP
Donnerstag, 27. Juni 13
![Page 213: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/213.jpg)
https://github.com/creationix/step
STEP
Donnerstag, 27. Juni 13
![Page 214: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/214.jpg)
COMPLEXEVENT
PROCESSING
Donnerstag, 27. Juni 13
![Page 215: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/215.jpg)
REACTIVE EXTENSIONS
IN
OUT
LOGIK
Donnerstag, 27. Juni 13
![Page 216: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/216.jpg)
ZUSTAND
‣ Array von Events
‣ Event Store
...
{ msg: „bar“ }
{ msg: „foo“ }
{ msg: „driven“ }
{ msg: „event“ }
{ msg: „start“ }01234
Donnerstag, 27. Juni 13
![Page 217: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/217.jpg)
EVENTS SPEICHERN
Donnerstag, 27. Juni 13
![Page 218: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/218.jpg)
ABFRAGE
Donnerstag, 27. Juni 13
![Page 219: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/219.jpg)
ABFRAGE
pattern matching
Donnerstag, 27. Juni 13
![Page 220: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/220.jpg)
MATCH & FOLD
Donnerstag, 27. Juni 13
![Page 221: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/221.jpg)
MORGEN
Donnerstag, 27. Juni 13
![Page 222: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/222.jpg)
EVENT STORE
Donnerstag, 27. Juni 13
![Page 223: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/223.jpg)
SEDA Staged Event Driven Architecture
Donnerstag, 27. Juni 13
![Page 224: Event Driven - Node.JS](https://reader034.fdocuments.in/reader034/viewer/2022052315/5488fdfab47959dd0c8b58a3/html5/thumbnails/224.jpg)
DANKE
Donnerstag, 27. Juni 13