Boehrsi.de - IT und Gaming Blog

I'm a coder - Ungesunde Abhängigkeit von Abhängigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Ungesunde Abhängigkeit von Abhängigkeiten Bild

Für wiederkehrende Leser dürfte mein Android-Entwickler-Hintergrund mittlerweile bekannt sein, für alle anderen die Information: Ich entwickle unter anderem Android Apps. In diesem Bereich gibt es extrem viele gute Libraries, die einem Aufgaben in allen möglichen Bereichen abnehmen, gut gepflegt sind und extrem viel Zeit sparen.
Die externen Abhängigkeiten sollten dann aber natürlich auch verwaltet, geprüft und aktualisiert werden. Libraries die nicht mehr unterstützt werden, sollten ausgetauscht werden und auch generell sollte man immer ein Auge auf Code haben, welchen man in seine Projekte integriert. Ein gewisser Zeitaufwand ist auf lange Sicht also auch hier zu erwarten.
In diesem Kontext bin ich aber durchaus positiv eingestellt, wenn es um externe Abhängigkeiten geht. Doch mittlerweile wirkt es so, als könnte man vieles zu einfach mit Libraries lösen, denn für teilweise die kleinsten Aufgaben werden komplette Library-Konstrukte integriert und nie wieder mit nur einem Auge betrachtet. Dies gilt für komplexe Dinge, wo Libraries meiner Meinung nach Sinn machen, aber auch für die trivialsten Dinge. Denn eine Abhängigkeit hinzufügen und einfach eine Methode aufzurufen, ist halt immer noch leichter als 5-6 durchdachte Zeilen selbst zu schreiben.
Viele Libraries können hilfreich sein, aber die Selbstverständlichkeit mit welcher, unabhängig von der genutzten Plattform, Programmiersprache oder der Build-Umgebung, Abhängigkeiten überall integriert werden, lässt mich teilweise mit dem Kopf schütteln. Der finale Auslöser dieses Beitrags ist meine Web-Entwicklung mit dem Static-Site-Generator Hugo open_in_new und die damit verbundene Idee warum ich Hugo wählte. Ich arbeite mit Hugo, weil es schnell und einfach funktioniert und dabei eine einzelne ausführbare und aktualisierbare Datei ist. Ohne Abhängigkeiten, ohne 5-Stufigen Build-Prozess, Downloads, Setups, Updates und was man sonst noch alles aufführen könnte.
Ich habe mir ein durchaus komplexes Theme gebaut, kann aber verstehen wenn man bereits fertige nutzen möchte. Was auf meinem Server, für eine andere - nicht von mir entwickelte Website - gerade getan wird. Die Hugo-Webseiten auf dem Server werden mit einem kleinen automatisierten Script, was ich geschrieben habe, gebaut und ich war verwirrt als mir vom Ersteller der Seite mitgeteilt wurde, dass seine Seite nicht erfolgreich erstellt wird.

Ein paar behobene Fehler in meinem Script später erkannte ich das letzte verbleibende Problem, npm open_in_new oder auch der Node Package Manager. Viele die mit JavaScript arbeiten kennen und mögen npm sicherlich und auch ich habe nichts gegen Node open_in_new, npm und das ganze Ökosystem. Aber bei aller Freundschaft, weil irgendein Theme, irgendwo eine lustige CSS Optimierung durchführen möchte (Hugo kann SASS / SCSS Dateien verarbeiten, unterstützt Asset Minification und noch einige weitere Dinge, ohne externe Tools) soll ich mir die gesamte Node / npm Toolchain für JavaScript auf den Server werfen?
Die Idee ohne unnötige Abhängigkeiten beim Tooling auszukommen, gesprengt durch ein Theme. Ich frage mich ob ich hier verbohrt bin oder ob meine Grundidee, den Overhead endlich mal wieder zu reduzieren, vielleicht doch ganz gut ist. Bei meinen eigenen Webseiten arbeite ich zusätzlich ohne diverse externe JavaScript und CSS Frameworks, wobei ich das jedem Entwickler selbst überlassen würde. Wenn mir aber ein Theme unterschieben möchte wie ich meine Build-Infrastruktur aufzubauen habe, stellen sich mir etwas die Nackenhaare auf.
Ich hadere aktuelle etwas mit mir, weil ich ungern nein sage. Doch stimme ich zu, kann ich mir auch direkt die Idee, auf welcher ich meinen Blog und meine generelle Web-Entwicklungs-Strategie für den Server aufgebaut habe, an die Backe Tackern. Ich sehe dabei wie gesagt durchaus den Einsatzzweck für Node, npm und andere Tools. Sind diese ohnehin installiert und baut man seine Software darauf auf, ist es nachvollziehbar auch kleinere Projekte damit umzusetzen. Aber für einen relativ simplen Blog, eine Portfolio Webseite für eine Firma oder aber eine Infoseite zu einer einzelnen Person, kann ich es irgendwie nicht nachvollziehen. In diesem Kontext fällt es mir sogar schwer zu erfassen wofür man Bootstrap, Materialize oder Bulma brauch. Denn mit einfachem JavaScript, vielleicht etwas jQuery zur Code-Optimierungen und dem modernen CSS mit Flex Layouting, kann man mittlerweile so viel machen, dass der Overhead durch externe Komponenten für kleine Projekte einfach massiv ist. Doch wie gesagt, bei den internen Frameworks ist es meiner Meinung nach Geschmackssache, geht es aber um den externen Overhead hört für mich der Spaß allerdings auf. Mich würde interessieren was ihr zum Thema denkt und wie eure Position ist.

Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.