Blog-Artikel | Zurück zur Übersicht

Den eigenen Stack hinterfragen

Bild von Enzo Volkmann Veröffentlicht am

Als Software-Entwickler muss ich mir regelmäßig selbst die Frage stellen, ob die von mir aktuell eingesetzten Werkzeuge, Programmiersprachen und Frameworks noch dem Stand der Technik entsprechen und ob sie jeweils das richtige für die vorliegende Aufgabe sind.

Das liegt vor allem daran, dass sich die verfügbaren Technologien selbst teilweise sehr schnell weiterentwickeln. Bei meinem Haupt-Framework für die Frontend-Entwicklung Angular beispielsweise erscheint zwei Mal jährlich eine neue Major-Version mit neuen Features und weiteren Veränderungen. Zwischenzeitlich erscheinen regelmäßig kleinere Zwischen-Updates und Fehlerbehebungen. Auf Github ist beispielsweise erkennbar, dass in den letzten 30 Tagen (Stand 01.06.2023) alleine 50 neue Pull-Requests eröffnet und 15 Einzug in die Haupt-Codebasis gefunden haben.

Screenshot von https://github.com/angular/angular/pulse Screenshot von https://github.com/angular/angular/pulse

Wie schaffe ich es, auf dem neuesten Stand zu bleiben?

Wenn ich mich selbst als Experte in einem Framework oder einer Technologie bezeichnen möchte, muss ich stets auf dem neuesten Stand bleiben und im Optimalfall auch noch wissen, wie die Dinge früher gemacht wurden - denn nicht jedes Kundenprojekt verwendet alle Komponenten in der jeweils neuesten Version; regelmäßig ist die Arbeit auch an Alt-Versionen erforderlich.

Am einfachsten und auch spannendsten ist die persönliche Weiterbildung für mich, wenn ich direkt nach Erscheinen neue Versionen oder ganze Technologien in unkritischen Projekten - wie beispielsweise meiner eigenen Webseite - teste und erlerne. So kann ich gut einschätzen, ob ich dieselbe Software auch bereits in umfangreicheren Kundenprojekten einsetzen sollte und möchte. Wenn der Einsatz sich dann ausweitet auf mehr Projekte und ich entsprechend mehr Zeit mit den neusten Versionen verbringe, bleiben sowohl die Projekte als auch ich selbst als Dienstleister technisch auf dem neuesten Stand - Win-Win also.

Über den Tellerrand schauen

Mein Kern-Technologie-Stack umfasst zur Zeit Angular , NestJS , das Graphile-Ökosystem sowie PostgreSQL . Hinzu kommen jeweils diverse angeschlossene Pakete, sodass ich mich theoretisch beinahe jeden Tag irgendwo mit einem neuen Update befassen könnte.

Es ist aber ebenso wichtig, interessant und erfrischend, dass ich mich von Zeit zu Zeit mal nicht mit meinen Technologien beschäftige, sondern andere Dinge ausprobiere, die ebenfalls zur Zeit aktuell sind und von vielen anderen Menschen genutzt werden.

Vor einigen Tagen beispielsweise unterhielt ich mich mit einem Freund über Angular und ob es für die Webseiten-Entwicklung (also keine komplexen, umfangreichen Web-Anwendungen) das richtige Werkzeug ist.

Unser bisher verwendetes System mit Angular und Scully (oder neuerdings Universal ) hat zwar sehr gut funktioniert, dennoch wollten wir die Fragestellung als Anlass nehmen, uns jeweils mit einer neuen Technologie zu befassen und diese zu testen.

Mein neuer Liebling: Svelte

Ich habe daraufhin etwas recherchiert und mich schlussendlich intensiver mit Svelte befasst. Auch wenn ich diese Erkenntnis auch schon vor einigen Jahren gehabt haben könnte, bin ich begeistert von dem Konzept eines Compilers und die ersten Arbeitsergebnisse sind mehr als zufriedenstellend.

Die Arbeit damit geht schnell, macht Spaß und die resultierenden Seiten sind rasend schnell. Als erstes Projekt habe ich gestern und heute innerhalb einiger Stunden diese Webseite von Angular auf Svelte umgebaut.

Das Ergebnis: Die Seite ist deutlich leichtgewichtiger und kommt beispielsweise mit 50% weniger Javascript aus. Der spürbarste Unterschied ist aus meiner Sicht aber, dass ich das richtigere Werkzeug für die Aufgabe verwende. An keiner Stelle hatte ich das Gefühl, gegen das System arbeiten zu müssen (wie etwa mit dem Scully Flash-Prevention Plugin ).

Gegenüberstellung der JS-Bundles von Angular und Svelte für diese Webseite Gegenüberstellung der JS-Bundles von Angular (161 kB) und Svelte (92 kB) für diese Webseite

Fazit

Ich möchte mich keinesfalls von Angular lösen, es ist für mich in der Anwendungsentwicklung nach wie vor das beste Framework und meine jahrelange Erfahrung damit ist viel Wert.

Die kleine Exkursion hat jedoch gezeigt, dass der regelmäßige Blick nach links und rechts sehr wertvoll sein kann. Da ich hin und wieder neben der umfangreichen Anwendungsentwicklung auch Webseiten erstelle, wird Svelte einen Platz bei mir finden und ich möchte meine persönliche Weiterbildung auch dort vorantreiben.

Da Svelte nicht grundsätzlich limitiert ist und auch umfangreichere Projekte hiermit durchaus machbar sind, werde ich diese Möglichkeit bei Gelegenheit auch in Betracht ziehen - hierfür ist meine Erfahrung mit dem Framework Stand heute (Anfang Juni 2023) jedoch noch zu gering, sodass ich hier noch auf Angular zurückgreifen würde.