Latihan 1: Ports & Adapters (Hexagonal Architecture) — Design Patterns

Latihan 1 dari materi Ports & Adapters (Hexagonal Architecture) di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Demonstrasikan Hexagonal Architecture: domain service bergantung pada port (interface), bukan adapter konkret.

Implementasikan:

1. createInMemoryUserRepo() — adapter test-only. Return object dengan method:

2. createRegisterUserService(userRepo, emailer) — domain service. Return function register(id, name):

3. createFakeEmailer() — adapter fake untuk test. Return object dengan send(id, msg) dan property sent (array history).

Tujuan exercise: service TIDAK tahu userRepo pakai in-memory atau Postgres. Bisa swap implementasi tanpa ubah service.

Hint