RxJS Observables – Everything is a stream

Apache Storm war vor einigen Jahre das Framework, in dem ich mich erstmals mit Streams befasst habe. Damals galt das unter Java mit Storm als innovativ, obwohl es die funktionale Programmierung eigentlich schon seit den 1930er Jahren gibt. Es handelt sich hierbei eben um eine Denkweise, die objektorientierten Entwicklern eher fremd vorkommt. Später war die Implementierung mit Google Guava dann doch etwas handlicher, von der die API ja auch größten Teils in Java 8 übernommen wurde. Dennoch merkt man stark, dass Java ursprünglich nicht als funktionale Programmiersprache gedacht war.

RxJS Observables, auf das ich dank Angular 2 gestoßen bin, ist anders – einmal damit angefangen, tendiert man dazu nichts mehr auf konventionelle, rein objektorientierte Art und Weise umzusetzen. Die Herausforderung liegt nun darin, gerade bei funktionaler Implementierung lesbaren CleanCode zu schreiben. Gerade hier ist das besonders wichtig, da es mit Lambda-Ausdrücken sehr verlockend ist, den Code so weit zu kürzen, dass er absolut unverständlich wird. Im besten Fall verbringt man dann selbst Stunden damit zu verstehen, was man da mal getan hat – im schlimmsten Fall muss sich ein Kollege durchkämpfen, der dringend einen Fehler beheben soll und bis dato noch wenig bis keine Kontakte mit funktionaler Programmierung hatte.

Als Schnellstart kann ich in so einem Fall nur „The introduction to Reactive Programming you’ve been missing“ von andrestalz empfehlen, befürchte aber, dass die Umstellung der Denkweise ohne echtes Training eine Mammutaufgabe sein könnte.

Projektstart Angular 2

Es ist soweit, ich habe mein erstes praktisches Angular 2 Projekt gestartet! Nachdem ich mich jetzt sehr intensiv in das Framework einarbeiten konnte, freue ich mich endlich erste praktische Erfahrungen sammeln zu können. Auch wenn ich hier aufgrund der üblichen Geheimhaltungsvereinbarung natürlich keine Details preisgeben kann, mag ich auf einige grobe Rahmenbedingungen eingehen. Das Team, das ich im Projekt unterstütze, ist wohl schon mit AngularJS gestartet und hat einige Vorgehensweisen, Pattern und Antipattern entwickelt, die nun in Bezug auf Angular 2 geprüft werden müssen.

Ansonsten finde ich es gut, dass wir unser eigenes Device nutzen können – so muss ich keinen klobigen Laptop mitschleppen, sondern kann auf meinem Surface Pro arbeiten. Auch unsere Entwicklungsumgebung können wir frei wählen – ich habe mit Atom angefangen, bin aber sehr schnell auf Microsoft Visual Studio Code umgestiegen. Mal sehen, ob ich zu einem späteren Zeitpunkt mehr über die eingesetzten Technologien und gewonnene Erfahrungen schreiben kann.