Aller au contenu
Filtrer les règles par style d’implémentation
Style
Transaction script
Sévérité
majeure
S’applique à
  • Use cases (application)
  • Contrats publiés (public)

TXS-07 · Pas de pseudo-entities, et les types Prisma restent dans le bounded context ​

Style
Transaction script
Sévérité
majeure
S’applique à
  • Use cases (application)
  • Contrats publiés (public)

Signal ​

  • Une classe Fee, wrapper d’une ligne Prisma, avec des getters et des setters, et rien d’autre.
  • Un contrat publié ou une représentation HTTP qui expose un type de modèle Prisma.
  • Un script qui renvoie la ligne Prisma comme réponse.

Pourquoi ​

Une classe à getters et setters autour d’une ligne ressemble à un modèle, sans en être un : les règles restent dans les scripts, et la classe n’ajoute qu’un mapping à garder synchronisé. C’est l’anemic model que ce style a été choisi pour éviter (ENT-10).

Les types Prisma suivent la base de données. Exposés aux appelants, ils font de chaque changement de colonne un breaking change du contrat.

Exceptions ​

Un value object du bounded context, comme Money ou Iban, est bienvenu dans un script : il porte ses propres vérifications, pas une ligne. Il vit dans application, à côté de l’application service de son concept (money.value-object.ts).

Correction ​

  • Utiliser les types Prisma dans les scripts, tels quels.
  • Répondre avec un type du script, ou du contrat publié, construit à partir de la ligne.

Voir aussi ​

PUB-01 garde le contrat publié autonome dans les deux styles.