Michael Hladky im Interview zu den JS Days 2020

„In RxJS können komplett unterschiedliche Probleme mit denselben Operatoren gelöst werden, wenn man nicht mehr im ‚What‘ sondern im ‚How‘ denkt.“
Keine Kommentare

RxJS bietet Entwicklern viele Vorteile für JavaScript-Projekte. Dabei kommt es gar nicht so sehr drauf an, welches Framework man wählt. Wir haben im Interview mit Michael Hladky über RxJS, fortgeschrittene Features und typische Anwendungsfälle gesprochen.

Entwickler: Wo liegen die Unterschiede im Einsatz von RxJS für Angular und in anderen Frameworks? 

Michael Hladky: Allgemein gesprochen nirgends. RxJS ist eine Library für reaktive Programmierung im Frontend und wird überall gleich eingesetzt. Somit wäre das ‚How‘ immer gleich. RxJS bietet eine reiche Palette an Operatoren, die das Verbinden von synchronem und asynchronem Code ermöglichen. Daher kümmert sich RxJS in jedem Framework gleich um das ‚How‘.

Der Unterschied liegt also im ‚What‘. Was für eine Information (transportierte Werte) verarbeiten die unterschiedlichen Frameworks mit RxJS? Hier kann man gängige Libraries für State-Management oder HTTP-Requests nennen, die in unterschiedlichen Implementierungen vorhanden sind. Alleine in Angular gibt es mindestens vier bis fünf bekannte Libraries.

Einen Unterschied könnte man nennen, wenn man nach den reaktiven Bereichen fragt, die das Framework out-of-the-box bereitstellt. Hier hat Angular ein gutes Set an Paketen, die Reaktivität bieten. Routing, Formulare, Pipes und HTTP sind bereits auf der Basis von RxJS implementiert und können einfach mit unserem Custom-Code verbunden werden.

Entwickler: Was wäre ein typischer Anwendungsfall, für den man fortgeschrittene RxJS-Features benötigt? 

Hladky: Anwendungsbereiche, die einen enormen Vorteil bringen, sind alle State-Management-Libaries, die Push-basiert arbeiten. Dies ist essentiell für die Performance.

Im UI-nahen Code sehe ich einen gewinnbringenden Einsatz im Verwenden von Flattening-Strategien wie switch, merge, exhaust und concat. Hier kann mit Einzeilern und minimalem Zeitaufwand ein UI geschaffen werden, das intuitives Feedback und performante Verarbeitung der Eingaben bietet. Ein echtes Beispiel wäre hier etwa, wenn das mehrmalige Klicken eines Refresh-Buttons nur einen Request senden und Klicks während des Refresh-Vorganges ignorieren soll. Hier wäre die Verwendung von exhaustMap oder exhaust (sollte eigentlich exhaustAll heißen) sinnvoll.

Entwickler: Ein weiterer wichtiger Aspekt ist das Error Handling. Welche Vorteile bringt RxJS dafür mit? 

Hladky: Ich würde den Aspekt der Vereinheitlichung hervorheben. RxJS bietet eine vereinheitlichte Form von Error Handling in synchronen wie auch asynchronen Code-Teilen. Jeder Error kann ‚an derselben Stelle‘ behandelt werden. Dies ist vor allem für asynchrones Error Handling interessant.

Das Behandeln von Fehlern kann in Operatoren wie auch im Observer-Teil des Streams erfolgen. Weitaus interessanter sind aber die Operatoren von RxJS.

International JavaScript Conference

Effective Microservices Architecture In Node.js

by Tamar Stern (Palto Alto Networks)

React Components And How To Style Them

by Jemima Abu (Telesoftas)

API Summit 2020

API-Design? Schon erledigt! – Einführung in JSON:API

mit Thilo Frotscher (Freiberufler)

Praktischer Einstieg in Go

mit Frank Müller (Loodse GmbH)

Da ein Observable nach einem Error quasi unbrauchbar wird, muss zwar nicht dasselbe Observable, aber derselbe Prozess neu gestartet werden. Hier bietet RxJS neben dem einfachen catchError Operator auch noch unterschiedliche Retry- und Repeat-Strategien an. Ein gutes Beispiel wäre ein Fehler bedingt durch den Verlust der Internetverbindung. Hier sollte der Prozess erst wieder gestartet werden, wenn der Client wieder online geht. Der Operator hierfür wäre retryWhen.

Entwickler: Was möchtest du allen mit auf den Weg geben, die mit RxJS arbeiten?

Hladky: Essentiell in der Handhabung von RxJS ist das Verständnis der einzelnen Prozesse und welche Operatoren hierfür hilfreich sind. In meinem Workshop auf den JavaScript Days erkläre ich einerseits den Prozess an sich auf einer abstrakten Ebene und zeige andererseits, wie die Verwendung in unterschiedlichen Teilen funktioniert. Dies soll hervorheben, dass komplett unterschiedliche Probleme mit denselben Operatoren gelöst werden können, wenn man nicht mehr im ‚What‘ sondern im ‚How‘ denkt.

Entwickler: Vielen Dank für das Interview!

Im Interview: Michael Hladky
Angular by heart and code. Michael (Angular College) is a full-stack developer located in Vienna, Austria.
He is a Google Developer Expert and an active part of the community. As founder of the Angular-Austria association, organizer of Angular-Vienna and NestJS-Vienna Meetup he grows the Austrian community. He is a developer, trainer and consultant with the focus on Angular as well as ionic and surrounding technologies, and gives workshops on Angular, RxJs and Typescript. He regularly speaks at conferences and meetups and enjoys participating in the dev community and OSS.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -