Ziel dieses Teils
Dieser Abschnitt kritisiert kein MVC und bewertet keine Frameworks. Er beschreibt typische Beobachtungen aus realen Projekten, die viele Entwickler irgendwann machen – oft unabhängig davon, welches Framework sie einsetzen.
Wichtig
Die folgenden Punkte sind keine Fehler einzelner Entwickler. Sie entstehen aus Wachstum, Zeitdruck und realen Anforderungen.
2.1 Controller wachsen über ihre Rolle hinaus
In der Theorie koordinieren Controller. In der Praxis werden sie oft zum Sammelbecken.
- HTML-Fragmente entstehen direkt im Controller
- Business-Logik und Seitenstruktur vermischen sich
- Assets werden „mal eben“ dort eingebunden
- Fehlerbehandlung passiert ad hoc
Typisches Symptom
„Nur hier kurz eine Ausnahme…“ Und sechs Monate später ist der Controller unlesbar.
2.2 Rendering-Pfade werden implizit
MVC sagt dass gerendert wird – aber oft nicht wie eindeutig.
- Templates inkludieren weitere Templates
- Fehlerseiten haben Sonderwege
- AJAX-, Partial- und Full-Responses folgen unterschiedlichen Regeln
- HTML entsteht an mehreren Stellen
Das Ergebnis: HTML ist vorhanden – aber schwer erklärbar.
2.3 HTML wird Nebenprodukt
In vielen Projekten wird HTML nicht bewusst gebaut, sondern ergibt sich als Resultat von Logik.
- Semantik entsteht zufällig
- Accessibility wird nachgerüstet
- SEO-Probleme werden mit Tools entdeckt – nicht verhindert
Beobachtung
Output-Qualität hängt stark von Disziplin ab – nicht von Struktur.
2.4 Fehlerseiten fühlen sich „anders“ an
404- und 500-Seiten folgen oft nicht denselben Regeln wie normale Seiten:
- eigene Templates
- eigene Asset-Logik
- eigene Rendering-Wege
Technisch korrekt – aber konzeptionell ein Bruch.
2.5 Erweiterungen verschieben Verantwortung
Plugins, Events und Hooks lösen Probleme – erzeugen aber neue:
- Logik springt zwischen Schichten
- Debugging wird schwieriger
- Reihenfolgen sind implizit
Der stille Effekt
Verantwortung wird verteilt – aber nicht mehr klar zugeordnet.
Zwischenfazit
- MVC ist nicht kaputt
- Die Probleme entstehen durch Wachstum
- Disziplin allein skaliert schlecht
Genau hier setzt Clean-Output-MVC an – nicht als Ersatz, sondern als gezielte Reaktion auf diese Muster.