Contributed to Angular 2

Merged! Zugegeben, es waren nur Code-Beispiele, wobei ich diese, besonders bei einem Framework für außerordentlich wichtig halte. Ich muss sagen, es ist ein gutes Gefühl an einem Projekt wie Angular mitwirken zu können. Jedenfalls war es eine interessante Erfahrung eine neue Perspektive auf das Projekt kennen zu lernen.

Technisch gab es natürlich einige interessante Punkte:

  • Anlegen eines lokalen Angular 2 Workspaces, in dem die einzelnen Module per Script durch symbolische Verknüpfungen verbunden werden.
  • Der Build-Process über Shell- und Gulp-Scripts
  • Die Quality-Gates über Linting und Tests

Menschlich fand ich es noch interessanter, da ich positiv überrascht war, wie freundlich, offen und hilfsbereit das Team reagiert hat. Und auch wenn die Zeitverschiebung die Kommunikation leicht erschwerte, bekam ich schnell Optimierungsvorschläge, die konstruktiv diskutiert wurden – ein beispielhaft gut geleberter GIT-Prozess eben.

Fazit: Ich konnte einen wesentlich tieferen Einblick in Angular 2 gewinnen und hatte Spaß dabei. Deshalb hoffe ich, dass ich zukünftig öfter oder gar regelmäßig Zeit finde an solchen Projekten mitzuarbeiten.

Jasmine – so dokumentiert man heute

Was ist Jasmine? Offensichtlich ein Test-Framework für JavaScript-Code. Aber schon in der Einführung zeigt es anschaulich, dass es vor allem auch zur Dokumentation von Software genutzt werden sollte.

Grundsätzlich bin ich, als ein Verfechter von CleanCode, ja der Meinung: Dokumentation von Implementierungsdetails sollte nicht notwendig sein, da der Code selbst so gestaltet werden sollte, dass man keine zusätzlichen Kommentare und Beschreibungen benötigt.

Die Herausforderung zusätzlicher Dokumentation von Softwaredetails (wenn denn mal vorhanden) liegt im Allgemeinen ja darin, diese aktuell und verlässlich zu halten. Sobald ich von der Dokumentation in den Quellcode wechseln muss, um zu prüfen ob die Beschreibung noch aktuell ist, wir diese schnell wertlos. Jasmine ist ein Framework mit dem man sehr schnell seine Dokumentation verfassen kann und zugleich die entsprechenden Testfälle integriert, die beweisen, dass die Software auch genau so arbeitet wie es beschrieben ist. Dazu macht es einem die sprechende API von Jasmine sehr einfach, auch die Umsetzung der Beweise lesbar zu gestalten – ein überzeugendes Beispiel hierzu liefert die eingangs erwähnte Einführung.

Fazit: Neben der Tatsache, dass es Spaß macht ein neues Projekt mit dem schreiben eines Jasmine-Tests zu beginnen, ist die Einführung von Jasmine ein herausragendes Beispiel wie man lesbaren Code gestalten kann.

Angular 2.0 – Erstkontakt

Aufbruch in eine neue Welt! Meine viermonatige Elternzeit verging wie im Flug und schon steht die nächste Herausforderung an: neues Projekt, komplett neuer Technologie-Stack. Nachdem ich drei viel zu lange Jahre mit der Architektur eines Softwaregiganten auf Basis von Java 1.6, Oracle SQL, Vaadin 7, jUnit, Mockito, Tomcat und Maven verbracht habe, steht jetzt das Kontrastprogramm mit TypeScript, MongoDB, Angular 2.0, Jasmine, nginx, npm und VisualStudioCode auf dem Plan.

Tour of Heroes titelt das erstklassige Einführungs-Tutorial von Angular. Schade, dass man in der Praxis selten die Zeit findet sich so systematisch in ein neues Thema einzuarbeiten. Ich hatte das Glück nicht nur die „Tour of Heroes“ komplett durchgehen, sondern mir darüber hinaus weitere Themenschwerpunkte wie die Architekturkonzepte, Reactive Forms, Pipes, Routing und vor allem Testing ansehen zu können. Letzteres wäre auch einer der einzigen beiden Kritikpunkte, die sich an der Tour finden lassen (der andere ist die Aufteilung – während die ersten Kapitel in Minuten zu bewältigen sind, brauchen die letzten Tage): ich bin ein großer Fan von TestDrivenDevelopement und habe mich deshalb sehr unwohl gefühlt, die Einführung ohne einen einzigen Test zu starten und bin schnell dazu übergegangen das Kapitel „Testing“ parallel zu bearbeiten. Das ist nicht immer ganz einfach gewesen, hat mir aber einen wesentlich tieferen Einblick in das Framework gegeben.

Fazit: Angular 2.0 hat bei mir einen sehr positiven ersten Eindruck hinterlassen – kein Wunder, dass es inzwischen so weit verbreitet ist. Die Basics sind sehr schnell zu erlernen, man sollte sich aber parallel unbedingt die Tests mit ansehen und es lohnt sich tiefer in die Konzepte zu gucken.

Hello World!

code better than last week – jede Woche nehme ich mir Zeit, mich selbst weiterzuentwickeln. Diese Woche musste ich mich mal wieder um eine eigene Homepage kümmern – ihr kennt das mit den Schustern und den schlechtesten Schuhen. Wie ihr hier sehen könnt, ist meine Wahl auf WordPress gefallen.

Wieso WordPress? Natürlich ist das nicht mein erster Anlauf. Irgendwann gab es da mal eine PHP-Seite, als ich mir vor Jahren Java Server Faces 2.0 angesehen habe, habe ich eine JSF-Seite angefangen und als ich mich in Vaadin eingearbeitet habe, habe ich eine Vaadin-Seite. Dabei entstanden viele einzelne Seiten, aber was fehlte war die Klammer, der Rahmen der alles zusammenhält. Was muss mein Rahmensystem also können? Zunächst einmal sollte es weit genug verbreitet sein, um eine gewisse Stabilität und Sicherheit zu gewährleisten – ich kann nicht alle paar Wochen ein neues Grundsystem aufsetzen, meine Internetseite muss einfach laufen. Dann muss es einfach zu pflegen sein – muss ich mir erst überlegen, wann ich dazu Zeit finde Inhalte anzupassen, mache ich es nie. Nicht zuletzt muss es flexibel erweiterbar sein – schließlich geht es um Softwareentwicklung und hierzu werde ich sicher das ein oder andere interaktive Beispiel einbinden wollen. Ach so … und repräsentativ Aussehen wäre vielleicht auch nicht schlecht. Spätestens wenn man den Punkt „Stabilität und Verbreitung“ mit in die Auswahlkriterien für sein Content-Management-System nimmt, fällt die Entscheidung nicht mehr sonderlich schwer: Hallo WordPress!

Aber WordPress ohne Blog? Ja, sicher, mit WordPress kann man, nicht zuletzt dank der unzähligen Plugins, inzwischen weit mehr machen als „nur“ zu bloggen. Nur jetzt, wo es schon mal läuft, muss ich das mit dem Bloggen auch mal probieren, und da du hier unten ankommen bist: Hallo Leser!