Willkommen › Software Architecture › MVC

Software Architecture · MVC

MVC: Ordnung zwischen Daten, Logik und Oberfläche.

Model-View-Controller trennt, was eine Anwendung weiß, was sie zeigt und wie sie auf Eingaben reagiert. Das Ergebnis: Code, den auch das nächste Team noch versteht.

Das Prinzip

Drei Rollen, klare Zuständigkeiten.

Model enthält die Daten und Geschäftsregeln – etwa „eine Bestellung über 50 € ist versandkostenfrei“.

View kümmert sich nur um die Darstellung: HTML, Templates, Komponenten.

Controller nimmt Anfragen entgegen, ruft das Model auf und wählt die passende View.

So fließt eine Anfrage durch MVC

Nutzerklickt „Bestellung anzeigen“
Controllernimmt die Anfrage an, prüft Rechte
Modellädt die Bestellung, rechnet Summen
Viewstellt die Daten als HTML dar

Im Code

Ein Controller, der nicht alles selbst macht.

Der häufigste Fehler in MVC-Projekten ist der „Fat Controller“: SQL, Berechnungen und HTML in einer Datei. Wir halten Controller dünn und verlagern Logik in Models und Services.

So lassen sich Regeln einzeln testen und die Oberfläche austauschen, ohne die Geschäftslogik anzufassen.

  • Controller nur als Vermittler
  • Logik in Services und Models
  • Views ohne Datenbankzugriff
PHP – schlanker Controller
final class BestellungController
{
public function __construct(
private BestellungRepository $bestellungen,
private View $view,
) {}
public function zeigen(int $id): Response
{
$bestellung = $this->bestellungen->finde($id);   // Model
return $this->view->render('bestellung/zeigen', [ // View
'bestellung' => $bestellung,
]);
}
}

Einsatz

Wo MVC zuhause ist.

Laravel & Symfony

Die großen PHP-Frameworks sind konsequent nach MVC aufgebaut.

Ruby on Rails & Django

Auch in Ruby und Python ist MVC (bzw. MTV) der Standard.

WordPress-Plugins

Größere Plugins strukturieren wir ebenfalls nach MVC statt in einer riesigen Datei.

MVC vs. Clean Architecture

Wann MVC reicht – und wann nicht.

MVC reicht

Für Websites, CRUD-Anwendungen und überschaubare Shops ist MVC schnell und verständlich.

Clean Architecture

Bei viel Fachlogik trennen wir zusätzlich Domäne, Anwendungsfälle und Infrastruktur.

Schrittweise

Ein bestehendes Projekt bauen wir nicht neu, sondern refaktorieren Stück für Stück.

Im Detail

MVC in der Praxis – worauf wir achten.

  • Routing – klare Zuordnung von URLs zu Controller-Aktionen
  • Dünne Controller – nur Anfrage annehmen, Model aufrufen, View wählen
  • Fachlogik im Model – Regeln wie Rabatte oder Versandkosten an einer Stelle
  • Services – komplexe Abläufe in eigenen Klassen statt im Controller
  • Repositories – Datenbankzugriff gekapselt und austauschbar
  • Templates – Views ohne SQL und ohne Geschäftslogik
  • Validierung – Eingaben prüfen, bevor sie das Model erreichen
  • Fehlerbehandlung – einheitliche Fehlerseiten und Logging
  • Tests – Models und Services einzeln testbar
  • Konventionen – feste Ordner- und Namensregeln für das ganze Team

Du brauchst uns, wenn …

  • … dein Controller 2.000 Zeilen lang ist und „Seite“ heißt.
  • … in deinen Templates SQL-Abfragen stehen.
  • … Model, View und Controller bei dir eine einzige Datei sind.
  • … deine Kollegen „Fat Controller“ für einen Spitznamen halten.
  • … du nach drei Jahren immer noch nicht weißt, wo der Warenkorb berechnet wird.

Sauberer Code ist kein Luxus.

Dein Code ist gewachsen – und unübersichtlich geworden?

Wir schauen uns deine Anwendung an und zeigen dir, wo sich Aufräumen am meisten lohnt.