Welche Nachteile hat man mit Frameworks und wann sollte man diese auf jeden Fall nicht einsetzen?

5 Antworten

Dir ist schon klar, was ein "Framework" ist und dass heutzutage so ungefähr alles weit mehr als nur ein paar Frameworks nutzt?
Solange Du also nicht bei 0 (und damit meine ich wirklich 0) anfangen willst, hast Du gar keine Wahl...

Abgesehen davon hängen deine Fragen von ungefähr allem ab - wie als würdest Du fragen, ob es schwer ist, Texte zu verstehen. Welche Texte? Gute Frage ...

In den meisten Fällen dürfte es Zeit kosten, ein Framework zu laden, allerdings nur einmal, da man sie danach hervorragend cachen kann. Und danach muss der Code im Framework auch ausgeführt werden, auch das braucht Zeit.
Allerdings muss dein eigener Code auch geladen und ausgeführt werden, was natürlich auch Zeit kostet. FALLS es einen Unterschied in der Performance gibt, die nur auf die Tatsache zurückzuführen ist, dass es ein Framework ist, dann fällt das mMn. unter Messtoleranz.

Und die Code-Komplexität hängt natürlich auch vom Framework ab, nur das bei einer eigenen Variante noch der Code hinzu kommt, der vorher im Framework vorhanden war.

Vergleich mal Framework vs. Selbst entwickelt.
Ohne Frameworks hast Du nur zwei Wege:

  • Feature raus werfen
  • Selbst entwickeln

Wenn Du den Kram selbst entwickelst, kannst Du zu diesem selbst entwickelten Stück Code natürlich exakt die gleichen Fragen nochmal stellen: Performance und Komplexität?

Wenn Du ein etabliertes Framework selbst entwickeln willst, ist der Code meiner Erfahrung nach am Ende immer langsamer und unnötig komplexer, als hättest Du das Framework verwendet. Aber es geht noch weiter, denn Du kannst nicht von den langen Erfahrungen und ggf. ausführlichen Tests anderer Entwickler profitieren, die das Framework genutzt/entwickelt haben, deine selbst gebastelte Version ist am Ende also nicht nur langsamer und komplexer, sondern auch noch fehleranfälliger und die Entwicklungszeit bis zu einer langfristig stabilen Version dauert deutlich länger. Und dann musst Du relevante Updates an solchen Technologien (z.B. eine API für irgendwas) immer selber nachrüsten, anstatt einfach nur kurz (jaja, ist nicht immer so einfach) die Version zu aktualisieren.

Ich gehe sogar hin und baue Code, den ich für relevant genug halte, in ein eigenes kleines Framework.

Es kann natürlich auch sein, dass ein Framework "too much" für das Projekt ist, in so einem Fall ist ein Blick auf ein anderes Framework oder die eigene Version durchaus interessant, aber man muss dann auch mit den Nachteilen leben.

Meiner Erfahrung nach sollte man sich gut überlegen, ob man ein Framework *nicht* verwenden will und es gibt viele Frameworks (bzw. Arten), die man bedenkenlos nutzen kann oder auch sollte (z.B. Logging).

Woher ich das weiß:Berufserfahrung

Designframeworks wie Bootstrap und co sind echt geil um schnell schöne Ergebnisse zu erzielen, allerdings sind sie für kleinere Projekte manchmal einfach unnötig mächtig und sorgen deshalb für längere Ladezeiten als nötig. Vor allem auf Smartphones ist das ein Thema.

Dazu kommt dass die Anpassbarkeit ist nicht immer gegeben ist und so kann es manchmal sehr viel Zeit und Nerven kosten um Customizing zu betreiben. (Deshalb gibt es auch minimalistische Frameworks)

Woher ich das weiß:Berufserfahrung – DevOps C# Entwicklung
Laufen web Anwendungen/ allgemein Apps langsamer?

Diese Frage lässt sich nicht mit einem pauschal Ja oder Nein beantworten, da es immer vom jeweiligen Framework, dessen Aufbau und Umfang abhängt. Ebenso spielt es eine Rolle, wie ein solches in eigene Projekte eingebunden wird.

Muss man Abstriche an der Performance machen? Oder wird der Code dadurch komplexer?

Abstriche an der Performance muss man nicht machen, wenn man nur die tatsächlich benötigten Komponenten einbindet. Letzteres geschieht z.B. durch CSS Präprozessor, in dem wirklich nur die genutzten Bestandteile kompiliert werden.

Durch Frameworks muss man das Rad nicht immer neu erfinden, um schnell ein Ergebnis erzielen zu können. Auf der anderen Seite kann es aber auch ein "mit Kanonen auf Spatzen schießen" sein, wenn ein solches als Ganzes eingebunden wird.

Bei einem Framework neigt vor allem ein weniger-versierter Nutzer dazu, irgendwelche Komponenten und Module zu verwenden, ohne dessen Funktion und Aufbau verstanden zu haben. Sprich, warum wurde es überhaupt so umgesetzt?

Was man am Ende zum Teil am aufgeblähten Quellcode erkennt oder wenn einzelne Elemente und Komponenten nicht an das eigene Projekt angepasst wurden – z.B. im visuellen Erscheinungsbild. Paradebeispiel wären hier Bootstrap-basierte Seiten.

LG medmonk

Woher ich das weiß:Berufserfahrung – UI/UX Designer, Full-Stack Developer

kommt aufs Framework an. Kann man nicht wirklich sagen. Wenn ein Framework eben schlecht entwickelt ist, kann es durchaus sein, dass man Performance etc. verliert.

Darauf verzichten sollte man eigentlich nie. Also wenn du jetzt auf die Schnelle eine schnelle und einfache statische Website erstellst, dann wirst du nicht unbedingt ein Frontend JavaScript Framework brauchen.

Effiziente und gute Frameworks sind oft die, die am meisten genutzt werden. Im Frontend Web Bereich ist das zb React oder auch Angular. Im Backend Bereich kommt es eben darauf an, was für ne Sprache du nutzt. Java Spring oder auch JS Express sind bekannte und sehr gute Frameworks für Java und JS.

Bei CSS Frameworks hat man den Nachteil, dass es schwieriger ist den Style individuell anzupassen.

Grundsätzlicher Nachteil ist, du weißt nicht genau was im Code steht. Bei einem eigenen Template weißt du was drinnen steht.

Es schadet nie, sich mal bei Gelegenheit eigene Frameworks/Templates zu erstellen

Woher ich das weiß:Hobby – Jahrelange Erfahrung — Technikbegeistert
Ademi33  24.05.2022, 11:02

Ich selber nutze gerne Bootstrap 5

0