Aufgabe 17 - Schichten-Detektiv
Aufgabe 17 - Schichten-Detektiv
Abschnitt betitelt „Aufgabe 17 - Schichten-Detektiv“Worum geht es?
Abschnitt betitelt „Worum geht es?“Bevor Sie das eigene Projekt in Schichten umbauen, schulen Sie den Blick an einem fremden Projekt: Sie analysieren ein vorbereitetes Next.js-Projekt mit korrekt aussehender Ordnerstruktur, aber acht eingebauten Architekturverstößen, finden die Verstöße über die Importe und reparieren die schwersten (siehe Kapitel Mehrschichtarchitektur).
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel Mehrschichtarchitektur vollständig.
- Das Detektiv-Projekt: eine kleine Rezeptverwaltung mit
app/,lib/services/,lib/repository/und acht eingebauten Verstößen, darunter eine Seite mit direktem SQL, ein Route Handler mit Preisberechnung, ein Service mit HTTP-Statuscodes, ein Repository, das eine Komponente importiert, und Validierung nur im Client. Sie erhalten es als ZIP-Archiv (17-detektiv-projekt.zip); nachnpm installläuft es mitnpm run devund ist unter/recipeserreichbar.
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie ordnen Code der richtigen Schicht zu und prüfen Abhängigkeitsrichtungen über Importe.
- Sie begründen Architekturverstöße mit ihren konkreten Folgekosten.
- Sie beheben Verstöße, ohne das Verhalten der Anwendung zu ändern.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: das Schichtenmodell und die Importregeln wiedergeben (Teil A).
- Reorganisation und Transfer: die Regeln als Prüfraster auf fremden Code anwenden (Teile B und C).
- Reflexion, Problemlösung und Urteilsbildung: Funde nach Schweregrad gewichten, Reparaturen durchführen und die eigene Trefferquote auswerten (Teil D).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei Stunden ausgelegt. Teil D ist der Expertenteil.
Teil A - Das Soll-Bild
Abschnitt betitelt „Teil A - Das Soll-Bild“- Zeichnen Sie die drei Schichten mit erlaubter Abhängigkeitsrichtung als Diagramm und notieren Sie die Importregeln als Tabelle (wer darf wen; wer nie wen).
- Formulieren Sie die drei schnellsten Suchmuster für Verstöße (etwa:
NextResponseaußerhalb vonapp/, SQL oderreadFileaußerhalb vonlib/repository/, Imports ausapp/irgendwo).
Teil B - Die Bestandsaufnahme
Abschnitt betitelt „Teil B - Die Bestandsaufnahme“- Gehen Sie das Projekt Datei für Datei durch und ordnen Sie jede Datei ihrer Soll-Schicht zu (Tabelle: Datei, Schicht, Auffälligkeiten).
- Nutzen Sie die Suchmuster aus Teil A projektweit (Editor-Suche genügt) und sammeln Sie Verdachtsstellen.
Teil C - Die Ermittlung
Abschnitt betitelt „Teil C - Die Ermittlung“- Weisen Sie mindestens sechs der acht Verstöße nach. Für jeden Fund: Datei und Zeile, verletzte Regel, und ein Satz zur konkreten Folge (“SQL in der Komponente: Ein Datenbankwechsel zwingt zum Anfassen der Oberfläche”).
- Sortieren Sie die Funde nach Schweregrad und begründen Sie die Reihenfolge in zwei bis drei Sätzen; nicht jeder Verstoß wiegt gleich (doppelte Validierung driftet auseinander; ein verirrter Import ist schnell behoben).
Teil D - Expertenteil: Reparatur und Auswertung
Abschnitt betitelt „Teil D - Expertenteil: Reparatur und Auswertung“- Beheben Sie die zwei schwersten Verstöße tatsächlich: Code in die richtige Schicht verschieben, Abhängigkeit umdrehen, je Reparatur ein eigener Commit mit begründender Message. Die Anwendung muss danach unverändert funktionieren (vorher/nachher am laufenden Projekt geprüft).
- Eine der Reparaturen soll die doppelte Validierung sein, falls gefunden: Entscheiden und begründen Sie, in welche Schicht die Regel gehört und was an der Grenze verbleibt.
- Besprechen Sie im Anschluss mit der Lehrkraft die vollständige Auflösung: Welche Verstöße haben Sie übersehen, und welches Suchmuster hätte sie gefunden? Ergänzen Sie Ihre Suchmusterliste entsprechend.
- Beurteilen Sie in drei Sätzen: Welche der Prüfungen ließe sich automatisieren (Lint-Regel für verbotene Importe), und wo bleibt menschliches Urteil nötig?
Wissenscheck
Abschnitt betitelt „Wissenscheck“- In welche Richtung dürfen Abhängigkeiten zwischen den Schichten zeigen?
- Woran erkennt man am Import, dass Präsentation in die Logik gesickert ist?
- Warum ist doppelte Validierungslogik in zwei Schichten gefährlicher als fehlende an einer?
- Warum muss eine Architektur-Reparatur verhaltensneutral sein, und wie weist man das nach?
- Nennen Sie zwei Suchmuster, mit denen Sie künftig jedes Projekt in Minuten prüfen.
Ermittlungsbericht (Soll-Bild, Bestandsaufnahme, Funde mit Begründung und Schweregrad-Reihung), das Repository mit den zwei Reparatur-Commits und die erweiterte Suchmusterliste.