Principes¶
Six règles non négociables. Chacune est conçue pour empêcher une classe d'erreurs déjà observées en production.
- Contrats stricts — Pydantic
extra="forbid",frozen, ré-validation explicite. Aucune mutation silencieuse. - Framework-agnostique —
HttpRouteSpecabstrait, prouvé par parité FastAPI/Litestar. - DI explicite — factory + closures, pas de conteneur magique.
- Erreurs métier comme code —
DomainError(code, message, details)partout, mapping canonique. - Tests miroir 100 % — un fichier source = un fichier test, lignes + branches.
- Échecs lisibles par machine — tickets d'erreur stables consommables par les clients.
Ces principes ne sont pas des recommandations. Le
make gatematérialise les 4 dernières (lint strict, mypy strict, couverture 100 %, et le mappingDomainErrorest testé en parité).