Enterprise Claims & Customer Support LernportalProjekt
Vorgehensmodell

SOLID-Refactoring vom God Object

Das Refactoring folgt nicht dem Big-Bang-Prinzip. Zuerst wird Verhalten eingefroren, dann werden reine Fachkonzepte isoliert, anschließend Portgrenzen eingeführt und erst zuletzt der Runtime-Wechsel zu Spring Boot vollzogen.

SOLIDStrangler FigCharacterization TestingPorts & Adapters

Refactoring-Reihenfolge

Verhalten charakterisieren

Die drei zentralen Ergebniszustände werden als ausführbare Baseline festgehalten. Änderungen dürfen die beobachtete Semantik nicht still verändern.

Value Objects extrahieren

ClaimId und Money ersetzen primitive Strings und lose BigDecimal-/Currency-Kombinationen.

Aggregate bilden

Der Statuswechsel wandert in Claim. Terminalzustände und Domain Events werden an einer Stelle kontrolliert.

Regeln als Policies

Regelblöcke werden über ClaimPolicy und CompositeClaimPolicy erweiterbar, unabhängig testbar und nach dem Open/Closed Principle strukturiert.

Focused Ports

Repository, Fraud, Coverage, Documents, Payment, Idempotency, Audit und Event Publishing erhalten kleine Interfaces statt eines generischen Gateway-Objekts.

Nebenwirkungen trennen

Persistenz und Outbox bleiben in einer lokalen Transaktion. Externe JMS-Zustellung läuft anschließend wiederholbar.

Traffic strangeln

Ein Legacy-kompatibler Bridge-Endpunkt leitet ausgewählte Operationen an den neuen Use Case. Weitere Domänenslices können schrittweise folgen.

Monster-Methode zu Verantwortlichkeiten

VorherNachherSOLID-Effekt
String-/Map-basierter RequestProcessClaimCommand, ClaimId, MoneySRP, Typensicherheit
60 Claims-Regeln und weitere domänenspezifische KontrollkaskadenClaimPolicy-StrategienOCP, testbare Regeln
SQL in EJBClaimRepositoryDIP, ISP
Generisches SOAP-GatewayFraudAssessmentPort, CoveragePort, PaymentPortISP, Anti-Corruption Layer
JMS in Business-TransaktionOutboxPort + OutboxPublisherTransaktionssicherheit
Globale ContainerabhängigkeitConstructor Injection / Composition RootDIP, testbarer Kern

Konkrete Codepfade

Wichtig: Der Legacy-Code bleibt als Referenz erhalten. Der moderne Code wird nicht durch kosmetisches Umbenennen erzeugt, sondern über stabile Verhaltensgrenzen und neue Verantwortlichkeiten.
⌂ Cockpit