Hexagonal Architecture
Architecture 🟡 MidDéfinition
Architecture Ports & Adapters ou le domaine expose des ports (interfaces) et les adaptateurs connectent le monde extérieur. Isole le coeur métier.
Analogie
Une prise universelle : le port est le standard, l'adaptateur change selon le pays (DB, API, UI).
Exemple de code
// Port (interface)
interface UserPort { findById(id): User; }
// Adapter
class MongoUserAdapter implements UserPort {
findById(id) { return mongo.find({ _id: id }); }
}
Cas d'usage
Remplacer facilement une base de données ou un service externe sans toucher au domaine.
Anti-pattern
Le domaine qui importe directement mongoose ou prisma — violation du port.