Hendrik-Loesch.de: Teil 1 – Der Grund, die Spielzeuge und das Vorgehen

Ich habe die letzten Monate genutzt um meine Webseite hendrik-loesch.de zu reaktivieren. Dabei ging es zum einen darum meine stark angestaubte About Seite zu ersetzen und zum anderen brauche ich eine dankbare Spielwiese. Diese Spielwiese hilft mir dabei ein Szenario zu schaffen in dem ich Materialien für meine Workshops und Vorträge erstellen kann, ohne irgend welche Copy Right Probleme fürchten zu müssen oder Angst haben zu müssen, dass die Beispiele nicht praxisrelevant oder zu einfach wären. Früher habe ich dies bereits über das Szenario „FotoMaxx“ versucht, einer Software zum Bestellen von Fotos. Da dieses Szenario meinen eigenen Alltag aber nicht berührt hat, bot es mir keinen Mehrwert außerhalb der Schulungen und wurde deshalb von mir nicht sehr pfleglich behandelt. Mit dem Szenario der Webseite verbinde ich ein Aushängeschild meiner eigenen Leistung und verspreche mir daher eine längere Lebenszeit und höhere Qualität des Ganzen.

Zum jetzigen Zeitpunkt habe ich die Webseite vor allem mit VueJS und der Komponentenbibliothek VuetifyJS realisiert. Zu VueJS wird in den nächsten Monaten ein Artikel von mir bei der Dotnetpro erscheinen und gefällt mir sehr gut, da es wesentlich einfacher einzusetzen ist als Angular. Man lernt es sehr schnell, hat eine geringere Einstiegshürde weil man nur mit ES6 arbeitet und die entsprechenden Templates sind soweit konfiguriert, dass man sich größtenteils auf die Lösung der eigentlichen Probleme, statt auf das ganze Tooling drum herum konzentrieren kann.

VuetifyJS bietet wiederum eine Vielzahl von UI Komponenten an, die auf Basis des Material Designs gestylt sind. Mir gefällt dies sehr gut und es hat mir auch erlaubt den Aufwand für mich vergleichsweise gering zu halten. Neben Vuetify habe ich außerdem Vuematerial ausprobiert, welches mir gut gefiel aber für mich nach einiger Zeit einfach nicht mehr zu nutzen ging. Hierbei muss man sagen, dass beide Frameworks aktuell noch in der Betaphase sind und ich mit der Entwicklung begonnen hatte bevor sie überhaupt in die Alphaphase gingen. Da kann schnell etwas zu Bruch gehen und so geschah es auch bei mir. Zum Vergleich beider Frameworks würde ich ebenfalls gern einen Artikel schreiben.

Das „Backend“ ist bei mir zur Zeit nichts anderes als ein normaler Webspace von Hetzner, auf dem ich auch dieses Blog hoste. Man könnte also sagen, dass es quasi nicht existent ist. Dies ist auch gar nicht nötig, da VueJS mir aktuell erlaubt jede komplexere Logik im Client zu realisieren. Mit komplexer Logik meine ich dabei vor allem die Navigation und das Auslesen meiner Publikationsliste. Da die Seite ja etwas über mich erzählen soll, habe ich sie mit einer Liste aller meiner Veröffentlichungen gespickt. Somit habe ich ein etwas komplexeres Umfeld, dass den Weggang von Plain old Html hin zu einer Single Page Application rechtfertig. Zum anderen kann ich diese Publikationsliste und alles was da noch kommen möge, beliebig komplex umsetzen.

Aktuell wird dazu beispielsweise einfach nur ein Json File bei Github bereit gestellt und per Ajax Call abgerufen. Auf die Weise unterliegt die Datei einer Versionsverwaltung und ich konnte gleich noch einen zweiten Pfad des Szenarios öffnen, ohne all zu große Aufwände in Kauf nehmen zu müssen. So ist beispielsweise eine Software mit C# und WPF entstanden, mit der man jene Datei pflegen kann. Diese Software wurde absichtlich komplex geschrieben und enthält eine Vielzahl gängiger Antipattern. Ich nutze sie als Beispiel für Vorträge und Workshops rund um das Thema Codequalität und Refactoring. Weiterhin baue ich sie in einem Workshop zu WPF und MVVM als mit Bestpractices auf und biete damit eine Doppelimplementierung die das genaue Gegenteil darstellt. Auf diese Weise hat man den direkten Vergleich, wie Software ohne MVVM und mit MVVM aussehen kann.

Bei der Publikationsliste und einer groben Vorstellung soll es zukünftig aber nicht bleiben. Ich möchte außerdem ein Kontaktformular bereitstellen, über welches ich evtl. Azure Functions ausprobieren möchte. Ich könnte mir auch vorstellen meine bisherigen Projekte in eine NoSQL Datenbank zu pflegen um mich auf die Weise in Cosmos bzw. Mongo DB einzuarbeiten. Spielraum gibt es genug, man muss nur halt die Zeit finden…