V01 Modular Baseline: Projektbeschreibung und Ablauf
Grundlegender Maven-Multi-Module-Schnitt: Domain, Application, Adapter und App werden bewusst getrennt.
Moduluebersicht
| Modul | Typ | Was es tut | Wichtige Muster |
|---|---|---|---|
order-domain |
Domain-Modul | Enthaelt das einfache Bestellmodell mit Wertobjekten, Status und grundlegenden Invarianten. | Aggregate Root; Value Object; Entity |
order-application |
Use-Case-Modul | Definiert den einfachen Bestell-Use-Case und die Ports, ueber die Domain und Adapter verbunden werden. | Application Service; Command Pattern; Repository Port |
order-adapter-memory |
Outbound Adapter | Stellt eine einfache In-Memory-Persistenz bereit, damit die Modulgrenzen ohne echte Datenbank sichtbar werden. | Adapter Pattern; Repository Adapter; Fake Adapter for Learning |
order-app |
Bootstrap / Inbound Adapter | Startet die einfache Anwendung und stellt einen REST-nahen Einstieg in den Bestellprozess dar. | Controller; Composition Root; Dependency Injection |
Ablauf der Version
- order-domain - Application erzeugt eine Order ueber fachliche Methoden. Order prueft Invarianten und wechselt den Status. Repository-Port speichert das Aggregate ueber einen Adapter.
- order-application - Controller erstellt ein PlaceOrderCommand. Use Case erzeugt Domain-Objekte und nutzt PricingPolicy. OrderRepository-Port wird vom Memory Adapter umgesetzt.
- order-adapter-memory - Use Case ruft OrderRepository.save. InMemoryOrderRepository speichert die Order im Speicher. Tests oder Demo-Aufrufe koennen ohne Datenbank laufen.
- order-app - HTTP/Controller-Aufruf kommt herein. Controller baut ein Command. Use Case verarbeitet und speichert ueber den Adapter.
Lese-Reihenfolge
- Root-
README.mdder Version lesen. PROJECTS.mdlesen.- Modul-READMEs nacheinander oeffnen.
- Java-Code mit
// PATTERN:-Kommentaren pruefen. - Zentrale Pattern-Doku unter
../../docs/design-patterns.mdvergleichen.