Teil 14 – Der Core wird leer
Nach dem Einstieg über Logging folgt in v0.2 ein Schritt, der auf den ersten Blick irritieren kann: Der Core verliert aktiv Verantwortung.
Das ist kein Aufräumen aus ästhetischen Gründen, sondern eine bewusste Entscheidung, um Rollen klarer zu trennen.
Warum ein „voller“ Core problematisch ist
In vielen Frameworks beginnt der Core, nach und nach Aufgaben zu übernehmen, die eigentlich zur Anwendung gehören:
- Default-Seiten
- Beispiel-Controller
- Demo-Routen
- implizite Fallbacks
Das fühlt sich praktisch an, verwischt aber eine entscheidende Grenze: Wo endet das System – und wo beginnt das Projekt?
Die neue Rolle des Cores
Ab v0.2 gilt eine klare Haltung:
- Der Core rendert nicht „Inhalt“
- Der Core kennt keine Seiten
- Der Core trifft keine Projektentscheidungen
Stattdessen stellt er Werkzeuge bereit: Router, Renderer, Middleware, Hooks.
Merksatz
Der Core ist Infrastruktur – kein Projekt.
Controller verlassen den Core
Eine der sichtbarsten Änderungen in v0.2: Controller liegen nicht mehr im Core.
Stattdessen wandern sie konsequent in den Anwendungskontext:
/src → Core (inhaltsfrei)
/custom/app → Anwendung
/custom/components → Features
Dadurch wird sofort klar, welche Klassen zum System gehören – und welche zum Projekt.
Die App-Shell entsteht
Mit dem leeren Core rückt eine neue Instanz in den Mittelpunkt: die App.
Die App ist kein Projekt im fachlichen Sinn, sondern ein Kontext:
- Sie hält den Router
- Sie kennt aktive Components
- Sie steuert den Lifecycle
Wichtig dabei: Die App enthält selbst keine Domain-Logik.
Warum das System dadurch stabiler wird
Wenn der Core keine Seiten kennt, kann er nicht versehentlich Entscheidungen treffen, die nur für ein einzelnes Projekt sinnvoll wären.
Gleichzeitig wird das Projekt freier: Es kann wachsen, schrumpfen oder ausgetauscht werden, ohne den Core zu verändern.
Architektur-Effekt
Weniger Verantwortung an der falschen Stelle bedeutet mehr Kontrolle an der richtigen.
Nächster Schritt
In Teil 15 schauen wir uns an, wie Routen ab v0.2 nicht mehr „einfach da sind“, sondern bewusst registriert werden.
Projekt & Quellcode
Die Trennung zwischen Core, App und Components ist im Repository bewusst sichtbar umgesetzt. Sie zeigt, wie Architektur nicht erklärt, sondern gelebt wird.
- 👤 GitHub-Profil: github.com/MichaelKorte73
- 📦 Projekt-Repository: github.com/MichaelKorte73/CleanOutputMVC