Das Kursprojekt db-2-app ist der normale Startpunkt für die Arbeit im Unterricht. Du beginnst im Starter, entwickelst Schritt für Schritt weiter und löst die Aufgaben im Verlauf der Blöcke. Checkpoints helfen, wenn du später einsteigst, etwas nacharbeiten möchtest oder eine Lösung kontrolliert anschauen musst.
Ein Checkpoint erzeugt eine normale Arbeitskopie des Projekts in einem frei wählbaren Zielordner. Diese Kopie kannst du öffnen, testen, verändern oder löschen, ohne den Starter zu überschreiben.
Überblick¶
Ein Checkpoint beschreibt einen definierten Stand von db-2-app. Der erzeugte Zielordner ist ein vollständiges Maven-Projekt mit eigener Projektkopie.
Du verwendest Checkpoints in drei Situationen:
Du steigst mitten in einen Block ein.
Du möchtest einen früheren Stand nacharbeiten.
Du möchtest eine Lösung separat anschauen.
Der Starter bleibt dabei unverändert. Für die normale Arbeit im Unterricht brauchst du keinen Checkpoint.
Grundbefehle¶
Alle Befehle werden im Ordner db-2-app ausgeführt.
Verfügbare Zustände anzeigen:
./course-state listEinen Zustand in einen Zielordner erzeugen:
./course-state create <state> <ziel>Einen einzelnen Zustand materialisieren und testen:
./course-state test <state>Alle definierten Zustände prüfen:
./course-state validate --skip-slowOhne --skip-slow werden auch langsamere Testcontainers-Tests ausgeführt, sofern Docker oder Podman verfügbar ist.
Aktuelle Zustände¶
| Zustand | Verwendung |
|---|---|
block-2-start | Normaler Starter für Block 2 |
block-2-complete | Lösung der V2-Migration für Ticket-Regeln |
block-3-start | Einstieg in Block 3 auf Basis des abgeschlossenen Block 2 |
block-3-complete | Lösung mit Transaktionsworkflow, Kommentaren, Events und Versionierung |
Die Liste wird erweitert, sobald weitere Blöcke vollständige App-Zustände brauchen.
Praxisbeispiele¶
Für den normalen Unterricht arbeitest du direkt im Starter weiter. Wenn du aber in Block 3 quer einsteigst, erzeugst du eine eigene Arbeitskopie:
./course-state create block-3-start ../work/db-2-app-block-3Wenn du die Lösung zu Block 3 anschauen möchtest, erzeugst du eine separate Lösungskopie:
./course-state create block-3-complete ../work/db-2-app-block-3-loesungDie Zielordner sind Beispiele. Entscheidend ist, dass der Zielordner ausserhalb von db-2-app liegt. Dadurch bleibt der Starter unverändert.
Zustände prüfen¶
Wenn du kontrollieren möchtest, ob ein Zustand korrekt erzeugt wird, kannst du ihn testen:
./course-state test block-3-startAlle definierten Zustände prüfst du mit:
./course-state validate --skip-slowDiese Prüfung erzeugt temporäre Arbeitskopien und führt die für den jeweiligen Zustand vorgesehenen Tests aus.