Aller au contenu
Filtrer les règles par style d’implémentation
Style
Tactique
Sévérité
mineure
S’applique à
  • Modèle (domain)

SRV-07 · Un domain service renvoie le minimum utile ​

Style
Tactique
Sévérité
mineure
S’applique à
  • Modèle (domain)

Signal ​

Un domain service qui renvoie un aggregate entier à l’application ou à l’interface, quand une petite valeur suffirait, surtout quand l’aggregate porte des données sensibles.

Pourquoi ​

Un domain service renvoie ce dont l’appelant a besoin, et rien de plus. Un aggregate entier expose tout ce qu’il contient : solde, blocages, historique. Une petite valeur peut passer à l’étape suivante, ou jusqu’à la réponse de l’API, sans rien exposer d’autre.

Par exemple, WithdrawalLimit.allows() renvoie un booléen : le retrait est autorisé ou non. Il ne rend ni le total des retraits des dernières 24 heures, ni le wallet. Quand l’appelant a besoin de plus, un petit value object nommé dans le langage suffit.

Exceptions ​

Un appelant qui doit ensuite appeler une méthode métier de l’aggregate.

Correction ​

Un value object de résultat, nommé dans le langage, qui ne porte que le nécessaire.

Voir aussi ​

ENT-13 ne laisse pas sortir les secrets de l’entity.