DDD Clinic du Mardi 27 Juillet 2021


Contexte

  • 15 personnes
  • 1 sujet proposé par Adrien

Gestion des droits

  • Une application de réservation dans les salons de coiffures

  • Il y a une différence entre un client et un gestionnaire

  • Approche 1 : class abstraite avec la gestion délégués aux classes filles

    • Problème : expose les scenarii à tous les consommateur
  • Approche 2 :

    • un shared kernel (un username)
    • la gestion des rôles dans la couche infra
    • chaque domaine définis les droits nécessaire (via les annotations, JAVA)
    • la couche service via Aspect Oriented Programming va vérifier les droits
    • Aucune gestion de rôle dédié
  • Approche 3 : injecter l’utilisateur à la commande

    • Inconvéniant : peut surcharger le domain
  • Au cours de l’EventStorming Alberto Brandolini utilise beaucoup les Policy

  • RBAC vs ABAC

    • RBAC force a créer beaucoup de rôles
    • ABAC donne un sous ensemble d’actions restreint
    • Les actions ne sont pas dans l’idp
    • Il y a un mapping role <-> action côté applicatif
  • Cas exceptionel : “Roger a besoin de faire ça”

    • Code smell à creuser => roole à nommer
  • Éviter l’utilisateur en mode God-object, couplé à tout avec le cycle de vie le plus court

Comment gérer les erreurs de designs

  • L’approche peer-review intensive est contre-productive
  • Page 321 du Blue book prône le refactoring permanent
  • Avancer et refactorer au fur et à mesure de la compréhension du domain
  • Les refontes sont rarement bénéfiques lorsque ni les personnes impliquées, ni la méthodologie ne changent

Quotes

  • “Il faut se surveiller pour ne pas donner une réponse technique quand il faut une réponse fonctionnelle” Arthur
  • “Il y a toujours un moment où le mouellon de la réalité vient s’écraser sur la tartelette de notre illusion de la réalité” Colin

Autres références

Roti :

  • 2 : 2 personnes
  • 3 : 3 personnes
  • 4 : 8 personnes
  • 5 : 1 personne
ddd