Reactive Programing in JavaScript – Was ist das?

Referent: Marko Beelmann
10:00
Hörsaal13 (121 Plätze)

Die Softwareentwicklung rund um das Thema Web ist in vielen Bereichen sehr dynamisch. Vor allem der Inhalt der Webseiten selber wird immer dynamischer und soll immer responsive sein. Das stellt den Entwickler nicht selten vor große Herausforderungen. Auch in modernen Web-Browsern gibt es das Modell der Event-Loop. JavaScript Code wird in dieser Loop ausgeführt und sollte nie in einen längeren blockierenden Zustand geraten. Somit muss Code, der blockieren kann, immer asynchron ausgeführt werden. Mit Hilfe des „Reactive Programing“ wird Koordination und Kombination von solchen asynchronen Operationen deutlich vereinfacht.

Dieses Konzept wurde bereits in einigen JavaScript-Frameworks umgesetzt. Zu den bekanntestem Frameworks gehören die „Reactive Extensions for JavaScript“ (RxJS). Dieses Framework wird z.B. in der kommenden Angular 2 Version als ein zentraler Baustein integriert sein. Auch ein Dienst wie Netfllix konnte mit Hilfe der Reactive Extensions nahezu alle asynchronen Probleme im Browser lösen.

RxJS bietet dem Entwickler eine ganz andere und meist intuitivere Art, asynchronen Code zu schreiben. Events vorfiltern, puffern oder auch mit einem bestimmten Scheduler ausführen lassen sind nur einige Beispiele. Auch kann durch eine geschickte Kombination von sogenannten Eventstreams eine State-Machine sehr elegant implementiert werden. Gerade in einer stark asynchronen Sprache wie JavaScript kann RxJS die „Callback Hölle“ vermeiden.

Mit Hilfe der Library lassen sich z.B. Arrays oder Tabellen in einen Eventstream umwandeln. Vor allem die asynchrone Programmierung kann mit Hilfe der Library deutlich einfacher werden. Der Vortrag soll einen Einblick in diese Thematik geben und mit kleinen Beispielen das Interesse der Teilnehmer wecken.