Aller au contenu
Filtrer les règles par style d’implémentation
Style
Les deux styles
Sévérité
majeure
S’applique à
  • Use cases (application)

UC-04 · Le use case reste mince ​

Style
Les deux styles
Sévérité
majeure
S’applique à
  • Use cases (application)

Signal ​

Un use case qui calcule des valeurs, enchaîne des décisions sur l’état du domaine, ou applique des règles métier dans ses boucles.

Le cas normal tient en trois étapes : recevoir les paramètres, charger l’aggregate par son repository, appeler l’une de ses méthodes métier.

Pourquoi ​

Un use case ne porte aucune logique métier : il coordonne. S’il devient beaucoup plus complexe que le cas normal, la logique fuit sans doute hors du domaine, et le modèle devient anémique.

Exceptions ​

Ces responsabilités sont légitimes :

  • contrôler la transaction et la sécurité ;
  • enregistrer dans l’outbox ce que les autres systèmes doivent apprendre, envoyé après le commit (MSG-01, PER-08) ;
  • créer un aggregate par une factory ou son constructeur, puis l’enregistrer ;
  • appeler un domain service.

Correction ​

Renvoyer chaque décision dans l’aggregate ou dans un domain service.

Voir aussi ​

AGG-01 et ENT-10 désignent la règle mal placée. Cette règle donne la taille attendue et la liste de ce qui est légitime : quand elles signalent les mêmes lignes, un seul finding suffit. SRV-03 montre un use case qui décide à la place du domaine, puis sa correction.