Une couche anti-corruption (anti-corruption layer, ACL) est une frontière de code qui traduit les modèles d'un système externe vers ceux de votre application, pour empêcher les concepts, les noms et les bizarreries de l'autre de « contaminer » votre domaine. Issue du Domain-Driven Design, elle s'incarne souvent dans un bridge ou une façade : tout ce qui vient de l'extérieur y est converti une fois, et le reste du code n'en voit jamais la forme brute.
Traduire, Pas Propager
La couche convertit les réponses externes — souvent verbeuses ou mal nommées — en objets internes propres. Le code métier manipule vos concepts, jamais des tableaux JSON venus d'ailleurs. Le jour où l'API distante renomme un champ ou change sa pagination, un seul fichier est touché : la traduction est centralisée, l'onde de choc s'arrête à la frontière.
Un Seul Point De Contact
Parce que tous les échanges passent par elle, la couche devient l'endroit naturel où poser le cache, les timeouts, la gestion d'erreur et les tests. Derrière une interface, elle se double facilement d'une fausse implémentation : l'application se teste hors-ligne, sans jamais appeler le système externe.
Une couche anti-corruption a un coût — du code de traduction à maintenir — qui se justifie quand le système externe est instable, mal conçu ou hors de votre contrôle. Face à une API maison rigide ou un legacy, c'est presque toujours rentable.