- Detaillierter Plan zur Migration von alter zu neuer Modulstruktur - Umfasst Überführung von shared-kernel zu core-Modulen - Definiert Migration von Fachdomänen zu bounded contexts: * master-data → masterdata-Module * member-management → members-Module * horse-registry → horses-Module * event-management → events-Module - Beschreibt Verlagerung von api-gateway zu infrastructure/gateway - Strukturiert nach Domain-driven Design Prinzipien - Berücksichtigt Clean Architecture Layering (domain, application, infrastructure, api)
58 lines
2.9 KiB
Markdown
58 lines
2.9 KiB
Markdown
# Migrations-Zusammenfassung
|
|
|
|
## Abgeschlossene Aufgaben
|
|
|
|
1. **Code-Migration**:
|
|
- Code von `:shared-kernel` zu `core`-Modulen migriert
|
|
- Code von `:master-data` zu `masterdata`-Modulen migriert
|
|
- Code von `:member-management` zu `members`-Modulen migriert
|
|
- Code von `:horse-registry` zu `horses`-Modulen migriert
|
|
- Code von `:event-management` zu `events`-Modulen migriert
|
|
- Code von `:api-gateway` zu `infrastructure/gateway` migriert
|
|
- Code von `:composeApp` zu `client`-Modulen migriert
|
|
|
|
2. **Paket-Aktualisierungen**:
|
|
- Paket-Deklarationen in allen migrierten Dateien aktualisiert
|
|
- Import-Anweisungen entsprechend der neuen Paketstruktur aktualisiert
|
|
- Referenzen zu alten Paketen im Code aktualisiert
|
|
|
|
## Verbleibende Probleme
|
|
|
|
1. **Kompilierungsfehler**:
|
|
- **Client-Module**: Der migrierte Client-Code von `:composeApp` verwendet Kotlin Multiplatform und Compose Multiplatform, aber die neuen Client-Module sind nur für JVM konfiguriert. Dies erfordert entweder:
|
|
- Aktualisierung der Client-Modul-Build-Dateien zur Unterstützung von Multiplatform
|
|
- Refactoring des Client-Codes für die Verwendung mit JVM-only-Konfiguration
|
|
|
|
- **Shadow JAR Tasks**: Fehlgeschlagen für mehrere Module (masterdata-api, horses-api, events-api)
|
|
|
|
- **Andere Kompilierungsprobleme**: Verschiedene andere Kompilierungsfehler müssen behoben werden
|
|
|
|
2. **Tests**:
|
|
- Tests müssen aktualisiert und ausgeführt werden, um zu verifizieren, dass die Migration erfolgreich war
|
|
|
|
## Empfehlungen
|
|
|
|
1. **Kompilierungsprobleme beheben**:
|
|
- Zuerst auf Core- und vertikale Module fokussieren
|
|
- Client-Modul-Probleme als separate Aufgabe behandeln
|
|
- Vollständigen Build nach der Fehlerbehebung ausführen
|
|
|
|
2. **Tests ausführen**:
|
|
- Tests aktualisieren und ausführen, um die Funktionalität zu verifizieren
|
|
|
|
3. **Alte Module aufräumen**:
|
|
- Das Cleanup-Skript (`./cleanup_old_modules.sh`) nur ausführen, nachdem verifiziert wurde, dass alle neuen Module erfolgreich kompilieren
|
|
- Erwägen Sie, es zuerst im Dry-Run-Modus auszuführen (`./cleanup_old_modules.sh --dry-run`)
|
|
|
|
## Fazit
|
|
|
|
Die Code-Migration von der alten Modulstruktur zur neuen modularen Architektur wurde abgeschlossen. Der Code wurde in die entsprechenden neuen Module verschoben, und Paket-Deklarationen sowie Imports wurden aktualisiert. Es gibt jedoch noch Kompilierungsprobleme, die behoben werden müssen, bevor die Migration als vollständig erfolgreich betrachtet werden kann.
|
|
|
|
Die größte Herausforderung liegt bei den Client-Modulen, die zusätzliche Arbeit erfordern, um den Multiplatform-Code, der vom `:composeApp`-Modul migriert wurde, ordnungsgemäß zu unterstützen. Dies sollte als Folgeaufgabe behandelt werden.
|
|
|
|
Sobald alle Kompilierungsprobleme gelöst sind und die Tests erfolgreich laufen, können die alten Module sicher mit dem bereitgestellten Cleanup-Skript entfernt werden.
|
|
|
|
---
|
|
|
|
**Letzte Aktualisierung**: 25. Juli 2025
|