Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Hexagonal Architecture — porty a adaptéry

01. 01. 2024 1 min čtení advanced

Architektura Pokročilý

Hexagonal Architecture — porty a adaptéry

HexagonalPorts & AdaptersClean Code 3 min čtení

Oddělení byznys logiky od infrastruktury. Porty, adaptéry a testovatelný kód.

Princip

Byznys logika nezávisí na databázi, frameworku ani UI. Porty = rozhraní. Adaptéry = konkrétní implementace.

Struktura

src/
├── domain/                    # Jádro — žádné závislosti!
│   ├── model/Order.ts
│   ├── ports/OrderRepository.ts  # Interface
│   └── services/OrderService.ts
├── application/
│   └── CreateOrderUseCase.ts
└── infrastructure/            # Adaptéry
    ├── persistence/PostgresOrderRepo.ts
    ├── payment/StripeGateway.ts
    └── web/OrderController.ts

Testovatelnost

Doménovou logiku testujete s mock adaptéry — bez databáze, bez 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();
});

Shrnutí

Hexagonální architektura je investice do udržitelnosti. Vyplatí se u projektů s delší životností.

Potřebujete pomoct s implementací?

Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.

Nezávazná konzultace