Architektur Fortgeschritten
Hexagonale Architektur — Ports und Adapter¶
HexagonalPorts & AdaptersClean Code 3 Min. Lesezeit
Trennung der Geschäftslogik von der Infrastruktur. Ports, Adapter und testbarer Code.
Prinzip¶
Geschäftslogik ist unabhängig von Datenbank, Framework und UI. Ports = Schnittstellen. Adapter = konkrete Implementierungen.
Struktur¶
src/
├── domain/ # Kern — keine Abhängigkeiten!
│ ├── model/Order.ts
│ ├── ports/OrderRepository.ts # Interface
│ └── services/OrderService.ts
├── application/
│ └── CreateOrderUseCase.ts
└── infrastructure/ # Adapter
├── persistence/PostgresOrderRepo.ts
├── payment/StripeGateway.ts
└── web/OrderController.ts
Testbarkeit¶
Domänenlogik wird mit Mock-Adaptern getestet — ohne Datenbank, ohne HTTP.
const mockRepo = { save: jest.fn() };
const service = new OrderService(mockRepo, mockPayment);
test('creates order', async () => {
const order = await service.createOrder('cust-1', items);
expect(order.status).toBe('CREATED');
expect(mockRepo.save).toHaveBeenCalled();
});
Zusammenfassung¶
Hexagonale Architektur ist eine Investition in die Wartbarkeit. Sie lohnt sich bei Projekten mit längerer Lebensdauer.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.