Aller au contenu

Principes

Six règles non négociables. Chacune est conçue pour empêcher une classe d'erreurs déjà observées en production.

  1. Contrats stricts — Pydantic extra="forbid", frozen, ré-validation explicite. Aucune mutation silencieuse.
  2. Framework-agnostique — HttpRouteSpec abstrait, prouvé par parité FastAPI/Litestar.
  3. DI explicite — factory + closures, pas de conteneur magique.
  4. Erreurs métier comme code — DomainError(code, message, details) partout, mapping canonique.
  5. Tests miroir 100 % — un fichier source = un fichier test, lignes + branches.
  6. Échecs lisibles par machine — tickets d'erreur stables consommables par les clients.

Ces principes ne sont pas des recommandations. Le make gate matérialise les 4 dernières (lint strict, mypy strict, couverture 100 %, et le mapping DomainError est testé en parité).