3.4 KiB
3.4 KiB
AP03 – Hexagonale Paketstruktur anlegen und Ist-Code migrieren
Ziel
Die Soll-Paketstruktur aus technik-und-architektur.md im Projekt anlegen und den bestehenden Code evolutionär in die neuen Pakete verschieben, ohne Funktionalität zu verlieren. Alle bestehenden Tests müssen weiterhin grün laufen.
Voraussetzungen
- AP01 (Ist-Stand bekannt)
- AP02 (Build ist grün)
Scope IN
- Anlage der Soll-Pakete:
(Paket
de.gecheckt.asv.domain de.gecheckt.asv.application de.gecheckt.asv.adapter.in.cli de.gecheckt.asv.adapter.out.filesystem de.gecheckt.asv.adapter.out.parsing de.gecheckt.asv.adapter.out.reporting de.gecheckt.asv.adapter.out.logging de.gecheckt.asv.bootstrapadapter.out.cryptokommt erst in M8.) - Migration des bestehenden Codes nach folgender Zuordnung:
de.gecheckt.asv.cli.AsvValidatorApplication→ vorerst nachadapter.in.cli, wird in AP06 refaktoriertde.gecheckt.asv.cli.ValidationResultPrinter→adapter.out.reporting(technische Berichtsausgabe ist Adapter-Zuständigkeit)de.gecheckt.asv.domain.model.*→domain(Paket.modeldarf bleiben als Unterpaket vondomain)de.gecheckt.asv.parser.*→adapter.out.parsingde.gecheckt.asv.validation.*(inkl.field/,structure/,model/) → vorerst unterapplicationbelassen, bis AP09 klärt, was davon wirklich nachapplicationgehört und was ggf. in einem eigenen Unterpaket „eingefroren" bleibt
- alle
package-Deklarationen undimport-Statements anpassen - alle Tests entsprechend mit verschieben
- Build und Tests bleiben grün
- einfaches Package-Diagramm als Markdown-Tabelle im Abschlussbericht
Scope OUT
- inhaltliche Umstellung der Klassen (Exit-Codes, Zeichensatz, Befundmodell — das kommt in späteren APs)
- Einführung neuer Klassen
- Löschen von Klassen
- Refactoring von Methoden
Schritte
- Branch
m1/ap03-hexagonale-pakete - Leerverzeichnisse für die Soll-Pakete anlegen (notfalls
.gitkeep, wird später entfernt) - Klassen paketweise verschieben (IDE-Refactoring „Move Class" hilft hier enorm)
- Nach jeder Paket-Migration:
mvn clean compilelaufen lassen, muss grün bleiben - Nach allen Migrationen:
mvn clean verify— muss grün sein - Kurze Paket-Beschreibung pro Paket in einem
package-info.javahinzufügen (deutsche JavaDoc, ein bis zwei Sätze) - Commit
M1-AP03: Hexagonale Paketstruktur angelegt, Ist-Code migriert - Abschlussbericht schreiben
Abnahmekriterien
- alle oben genannten Soll-Pakete existieren als Java-Packages
- kein Code ist verloren gegangen:
git log --statzeigt nur Verschiebungen und Import-Anpassungen, keine Löschungen mvn clean verifyist grün- jede neue Paket-Wurzel hat ein
package-info.javamit deutscher Kurzbeschreibung - Abschlussbericht enthält eine Vorher-Nachher-Tabelle jeder migrierten Klasse
- keine neuen Features
Rest-Risiken und offene Punkte
- Die Zuordnung der Validation-Klassen nach
applicationist provisorisch. AP09 entscheidet endgültig, was davon in M1 aktiv bleibt und was eingefroren wird. AsvValidatorApplicationbleibt vorerst im CLI-Adapter, wird aber in AP06 zerlegt (Bootstrap + dünner CLI-Adapter).- Die Tests-Struktur sollte die neue Paketstruktur spiegeln; falls das mit IDE-Move automatisch passiert: gut. Falls nicht: manuell nachziehen.
Bericht
docs/arbeitspakete/m1/berichte/AP03-bericht.md nach templates/ap-bericht.md.