Successfully reported this slideshow.
Your SlideShare is downloading. ×

Tutti i nostri aggregati sono sbagliati (K-Lab #3, 2017)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 24 Ad

Tutti i nostri aggregati sono sbagliati (K-Lab #3, 2017)

Download to read offline

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.

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.

Advertisement
Advertisement

More Related Content

Similar to Tutti i nostri aggregati sono sbagliati (K-Lab #3, 2017) (20)

More from Mauro Servienti (20)

Advertisement
Advertisement

Tutti i nostri aggregati sono sbagliati (K-Lab #3, 2017)

  1. 1. Tutti i nostri aggregati sono sbagliati Ovvero quando confondiamo accoppiamento e coesione
  2. 2. Il carrello della spesa In apparenza tanto banale
  3. 3. Il carrello della spesa
  4. 4. Il mio fido porta-banana
  5. 5. Le informazioni chiave
  6. 6. Un perfetto aggregato Data & Behavior
  7. 7. Un perfetto aggregato
  8. 8. Requisiti di business Mauro Servienti Trouble-solver @ Particular Software mauro.servienti@particular.net @mauroservienti //blogs.ugidotnet.org/topics
  9. 9. Maledetti requisiti di business
  10. 10. Il nostro «perfetto» aggregato…. Availability from Warehouse New Price from Sales
  11. 11. Il nostro «perfetto» aggregato…. Warehouse Sales Shipping Marketing Suppliers ! !
  12. 12. in una parola accoppiamento
  13. 13. a prescindere da come lo fate
  14. 14. Rich domain model (DDD) It's focused on behaviors and businesses rules. Data it's just an effect of those.
  15. 15. Concentratevi su chi scrive e non su chi legge
  16. 16. Torniamo al carrello
  17. 17. AddItemToCartCommand - CartId - StockItemId ShoppingCart Sales ItemAddedToCart - CartItemId - StockItemId
  18. 18. Il carrello •Il carrello è un processo •Una «semplice» macchina a stati •I servizi coinvolti sono coesi, non accoppiati
  19. 19. …e la quantità?
  20. 20. …e la quantità?
  21. 21. …e la quantità? ChangeQuantity - CartItemId - Quantity API Gateway Shipping Sales ChangeQuantity - CartItemId - Quantity ChangeQuantity - CartItemId - Quantity Shipping Sales - CartTotalChanged - …. - AvailableShippingTypesChanged - EligibilityForFreeShippingChanged - ….
  22. 22. Concludendo •Attenti all’accoppiamento, ma non odiatelo •Abbracciamo la coesione, è nostra amica •Concentriamoci su chi scrive, non chi legge
  23. 23. service boundaries
  24. 24. Grazie! Mauro Servienti Trouble-solver @ Particular Software mauro.servienti@particular.net @mauroservienti //blogs.ugidotnet.org/topics

×