Hexagonal Architecture
Architecture 🟡 MidDefinition
Architecture Ports & Adapters ou le domaine expose des ports (interfaces) et les adaptateurs connectent le monde exterieur. Isole le coeur metier.
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 donnees ou un service externe sans toucher au domaine.
Anti-pattern
Le domaine qui importe directement mongoose ou prisma — violation du port.