L’8 giugno alle 18 sarò nuovamente ospite di KLab, a Firoenzuola d’Arda, per parlare di modellazione, service boundaries e domain decomposition.

image

Il titolo del talk provocatoriamente è:

Tutti i nostri aggregati sono sbagliati

Inizia sempre tutto bene, il requisito è semplice e l'implementazione procede senza intoppi. Poi i requisiti aumentano e ci ritroviamo con una strana sensazione allo stomaco e con la necessità di introdurre alchimie tecnologiche che non ci piacciono, ma non sappiamo perché. Prenderemo una funzionalità tanto semplice, quanto usata, come il carrello di un e-commerce e proveremo a capire se è veramente così semplice. Guarderemo il problema tecnico che vogliamo risolvere e poi sposteremo l'attenzione sui requisiti di business. Requisiti che una volta compresi a fondo ci porteranno a capire quali sono le vere responsabilità del dominio.

Ho la sensazione, spesso poi confermata dai fatti, che troppo spesso si fa il salto “Facciamo DDD, evviva, allora definiamo gli aggregati”, tralasciando tutto un mondo essenziale che passa anche da identificare i service boundaries e decomporre il dominio.

Nel mio lungo peregrinare di post nel mondo SOA e UI Composition, ho toccato più e più volte l’argomento senza mai esplicitamente trattarlo. Bene questa è la volta buona. Il mio scopo sarà convincervi che un carrello della spesa in un sistema di e-commerce non si disegna così:

{
   CartId,
   UserId,
   Items: [{
      ItemId,
      StockItemId
      Description,
      Price,
      Quantity
   }]
}

Ma piuttosto, così:

{
   CartId,
   UserId,
   Items: [{
      StockItemId
   }]
}

O magari non si disegna proprio…Se siete curiosi, se non siete d’accordo e volete scoprire come e perché la penso così, se semplicemente volete tirarmi le pietre venite al KLab dell’8 giugno :-)

Actor Model

Poi ci saranno due loschi figuri (Melchiori e Ceroni) che parleranno di Actor Model, che potrebbe essere un modo interessante, concettualmente, per continuare la discussione ;-)

Poi?

Si mangia, ovviamente :-)

Maggiori informazioni e registrazione: https://www.eventbrite.com/e/klab-2017-3-tickets-34512631209