Idea - post-it - test verdi.

1,693 views

Published on

Modellare un dominio applicativo può essere decisamente complesso; in questa sessione vedremo come Event Storming ed Event Sourcing permettono di prendere una idea, darle forma usando un rotolo di carta e dei post-it e tradurla in codice C# sfruttando BDD e Machine Specifications... alla velocità della luce.

Presentazione a 4 mani di Alberto Brandolini e Andrea Balducci.

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,693
On SlideShare
0
From Embeds
0
Number of Embeds
111
Actions
Shares
0
Downloads
37
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Idea - post-it - test verdi.

  1. 1. Idea Idea —> Post-It —> Test Verdi Post-it Test Verdi! #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Alberto Brandolini! alberto.brandolini@avanscoperta.it @ziobrando http://ziobrando.blogspot.com Andrea Balducci! andrea.balducci@prxm.it @andreabalducci
  2. 2. Idea —> Post-it —> Test verdi Alberto Brandolini! alberto.brandolini@avanscoperta.it @ziobrando http://ziobrando.blogspot.com Andrea Balducci! andrea.balducci@prxm.it @andreabalducci #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  3. 3. Grazie a Sponsor #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  4. 4. About me @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  5. 5. About me Certified DDD Trainer @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  6. 6. About me Certified DDD Trainer Post-it addicted @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  7. 7. About me Certified DDD Trainer Post-it addicted Visual thinker @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  8. 8. About me Certified DDD Trainer Post-it addicted Visual thinker Chaos summoner @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  9. 9. About me Certified DDD Trainer Post-it addicted Visual thinker Chaos summoner Idea thief @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  10. 10. About me Certified DDD Trainer Post-it addicted Visual thinker Chaos summoner Idea thief Lean & Agile @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  11. 11. About me Certified DDD Trainer Post-it addicted Visual thinker Chaos summoner Idea thief Lean & Agile Entrepreneur @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  12. 12. About me Certified DDD Trainer Post-it addicted Visual thinker Chaos summoner Idea thief Lean & Agile Entrepreneur …never satisfied #CDays14 – Milano 25, 26 e 27 Febbraio 2014 @ziobrando alberto.brandolini@avanscoperta.it DDD-IT XPUG - Romagna avanscoperta
  13. 13. Il problema #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  14. 14. Costo delle modifiche 10 9 8 Dobbiamo riscrivere Costo di modifica 7 6 Non si può fare 5 4 “manutenzione” 3 2 Label Illusione del greenfield 1 0 0 1 2 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 3 4 5 Complessità 6 7 8 9 10
  15. 15. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  16. 16. Imponente #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  17. 17. Imponente Flessibile? #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  18. 18. Ooops…. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  19. 19. Il miglior modo per rimuovere il pattume dal sistema è… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  20. 20. non mettere pattume nel sistema #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  21. 21. Altrimenti… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  22. 22. l App n at i o ic pl i p A i pl Ap Ap pl i D at a b a s e c io at ca tio n at c i on ppl A i o ati c n pl i p A tio ca n App tio n l ic a n pl i Ap io n c at D at a ba se ci ritroviamo con la solita architettura #CDays14 – Milano 25, 26 e 27 Febbraio 2014 © Alberto Brandolini 2013
  23. 23. …da portare sul cloud #CDays14 – Milano 25, 26 e 27 Febbraio 2014 !14
  24. 24. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 © Alberto Brandolini 2013
  25. 25. Quando si fa refactoring? #CDays14 – Milano 25, 26 e 27 Febbraio 2014 © Alberto Brandolini 2013
  26. 26. Quando si fa refactoring? #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Mañana!! © Alberto Brandolini 2013
  27. 27. Ignorance is the single greatest impediment to throughput. Dan North #CDays14 – Milano 25, 26 e 27 Febbraio 2014 http://dannorth.net/2010/08/30/introducing-deliberate-discovery/
  28. 28. Learning is the constraint #CDays14 – Milano 25, 26 e 27 Febbraio 2014 http://dannorth.net/2010/08/30/introducing-deliberate-discovery/ Dan North
  29. 29. Piano d’azione #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  30. 30. Piano d’azione 1. Cominciare con il piede giusto #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  31. 31. Piano d’azione 1. Cominciare con il piede giusto 2. Rimuovere gli ostacoli all’apprendimento #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  32. 32. Piano d’azione 1. Cominciare con il piede giusto 2. Rimuovere gli ostacoli all’apprendimento 3. Iterare alla massima frequenza possibile #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  33. 33. Event Storming! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  34. 34. Event Storming • Tutti in una stanza • Rotolone di carta —> “unlimited modelling surface” • Partiamo dai domain events! • Raffiniamo il modello un passo alla volta #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  35. 35. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  36. 36. Tutti in una stanza? #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  37. 37. Tutti in una stanza! • Risoluzione anticipata dei conflitti • Visualizzazione di un artifact • Possibilità di osservare l’aspetto umano • Alto livello di energia. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  38. 38. Si, TUTTO lo spazio #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  39. 39. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  40. 40. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  41. 41. Il dominio… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  42. 42. Prenotazione risorse #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  43. 43. Video! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  44. 44. Video! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  45. 45. Video! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  46. 46. Che è successo? #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  47. 47. Bounded Contexts • Lavorando con le persone emergono i naturali confini tra • le porzioni del dominio —> subdomains! • i modelli in essere —> Bounded Contexts #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  48. 48. Ubiquitous Language • la discussione ci ha portato ad una precisione del linguaggio sempre maggiore • Il linguaggio è consistente e preciso all’interno di un Bounded Context #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  49. 49. Aggregati ed Invarianti • aggregati = unità di consistenza.! • Gli aggregati vengono individuati sulla base del comportamento del sistema • Le invarianti sono garantite dagli aggregati. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  50. 50. Roles & Responsibility #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  51. 51. Prima capiamo cosa sta dentro agli aggregati #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  52. 52. Poi capiamo che nome dargli #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  53. 53. Conceptual CQRS issues Command to Domain Model raises Event User influences Read Model notified to influences updates External information #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Projection
  54. 54. Read Model • Gli aggregati prendono decisioni sulla base dello stato corrente. • Gli utenti prendono decisioni sulla base di quello che vedono… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  55. 55. Vedo i dati vecchi… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  56. 56. Cambio! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  57. 57. @andreabalducci #CDays14 – Milano 25, 26 e 27 Febbraio 2014 !42
  58. 58. Event Sourcing !43 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  59. 59. Il nostro dominio ha una storia da raccontare… !44 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  60. 60. …ma spesso ci accontentiamo dei titoli di coda !45 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  61. 61. !46 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  62. 62. ..invece di guardare tutta la storia. !47 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  63. 63. !48 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  64. 64. Quante informazioni perdiamo ? !49 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  65. 65. Il saldo è 6.684€ !50 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  66. 66. Data Dare 3/2 Avere Descrizione operazione 160 4/2 1.500 4/2 1.400 10/2 180 12/2 200 12/2 180 14/2 80 17/2 200 20/2 16 20/2 300 20/2 320 20/2 75 21/2 16 22/2 180 22/2 200 2.107 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !51
  67. 67. Data Dare 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 180 Supermercato Le Fornaci - Castelfidardo 12/2 200 Mediaworld Ancona 12/2 180 Pittarello Ancona 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 zalando.it 2.107 Ristorante Osteria da Pippo IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  68. 68. Data Dare 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 180 Supermercato Le Fornaci - Castelfidardo 12/2 200 Mediaworld Ancona 12/2 180 Pittarello Ancona 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 Due persone
 Stessa Azienda zalando.it 2.107 Ristorante Osteria da Pippo IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  69. 69. Data Dare 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 180 Supermercato Le Fornaci - Castelfidardo 12/2 200 Mediaworld Ancona 12/2 180 Pittarello Ancona 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 Due persone
 Stessa Azienda zalando.it 2.107 Ristorante Osteria da Pippo IperSimply- Castelfidardo Carnivori Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  70. 70. Data Dare 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 Auto senza 12/2 telepass 12/2 180 Supermercato Le Fornaci - Castelfidardo 200 Mediaworld Ancona 180 Due persone
 Stessa Azienda Pittarello Ancona Ristorante Osteria da Pippo 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 Carnivori zalando.it 2.107 IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  71. 71. LuiDataLei Dare & 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 Auto senza 12/2 telepass 12/2 180 Supermercato Le Fornaci - Castelfidardo 200 Mediaworld Ancona 180 Due persone
 Stessa Azienda Pittarello Ancona Ristorante Osteria da Pippo 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 Carnivori zalando.it 2.107 IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  72. 72. LuiDataLei Dare & 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 Auto senza 12/2 telepass 12/2 180 Supermercato Le Fornaci - Castelfidardo 200 Mediaworld Ancona 180 Due persone
 Stessa Azienda Pittarello Ancona Ristorante Osteria da Pippo 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carpisa Bologna 20/2 75 Hotel Bologna 21/2 16 Autostrade Spa - Casello Ancona 22/2 180 amazon.it 22/2 200 zalando.it Carnivori 2.107 IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Lei compra entro un’ora da lui Saldo al 22/2 : 6.684 !52
  73. 73. LuiDataLei Dare & 3/2 Avere Descrizione operazione Supermercato Le Fornaci - Castelfidardo 160 4/2 1.500 ACME Spa - Stipendio Gennaio 4/2 1.400 ACME Spa - Stipendio Gennaio 10/2 Auto senza 12/2 telepass 12/2 180 Supermercato Le Fornaci - Castelfidardo 200 Mediaworld Ancona 180 Due persone
 Stessa Azienda Pittarello Ancona Ristorante Osteria da Pippo 14/2 80 17/2 200 20/2 16 20/2 300 Mediaworld Bologna 20/2 320 Carnivori Carpisa Bologna 20/2 21/2 22/2 22/2 IperSimply- Castelfidardo Autostrade Spa - Casello Bologna 75 24/2 spesa a Hotel Bologna 16 Autostrade Spa - Casello Ancona Lei compra entro Castelfidardo amazon.it 180 un’ora da lui 200 zalando.it 2.107 2.900 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Saldo al 22/2 : 6.684 !52
  74. 74. Event Sourcing?
 !53 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  75. 75. Event Sourcing?
 ne ho sentito parlare… !53 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  76. 76. Dominio !54 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  77. 77. Aggregato DB ORM Risorsa_1 Proprietà Richiesta_1 Richiesta_2 Utente_1 Metodi Risorsa_2 !55 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  78. 78. ok.. basta una tabella di log !56 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  79. 79. basta !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  80. 80. basta duplicare tutte le strutture dati !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  81. 81. basta duplicare tutte le strutture dati tenere tutto sincronizzato !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  82. 82. basta duplicare tutte le strutture dati tenere tutto sincronizzato versionare tutto !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  83. 83. basta duplicare tutte le strutture dati tenere tutto sincronizzato versionare tutto un bel flag “comando io” !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  84. 84. basta duplicare tutte le strutture dati tenere tutto sincronizzato versionare tutto un bel flag “comando io” mapping! mapping! mapping! (cit) !57 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  85. 85. basta uno storage ad eventi !58 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  86. 86. NEventStore A persistence agnostic Event Store for .NET
 http://neventstore.org/ !59 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  87. 87. CommonDomain la “colla” tra DDD e NEventStore !60 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  88. 88. Aggregato DB ORM Risorsa_1 Proprietà Richiesta_1 Richiesta_2 Utente_1 Metodi Risorsa_2 !61 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  89. 89. Aggregato EventStore Richiesta Creata Stato Common
 Domain Eventi Richiesta Approvata Prenotazione Confermata Prenotazione
 Respinta Risorsa
 Acquistata Comandi Risorsa
 Dismessa !62 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  90. 90. Evento Chi Quando Dove Cosa Perché !63 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  91. 91. Evento Chi Headers: User_1 Quando Timestamp: 2014-02-25T15:45 Dove Aggregato: Presentazione Cosa Slide Attiva: 1 Perché PresentazioneIniziata !64 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  92. 92. Evento Chi Headers: User_1 Quando Timestamp: 2014-02-25T15:45 Dove Aggregato: Presentazione Cosa Slide Attiva: 1 Perché PresentazioneIniziata !65 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  93. 93. A. var aggregate = repository.GetById<TAggregate>(id); B. aggregate.Command(a,b,c); C. repository.Save(aggregate, commitId, h => h.Add(k,v)); !66 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  94. 94. A. var aggregate = repository.GetById<TAggregate>(id); B. aggregate.Command(a,b,c); C. repository.Save(aggregate, commitId, h => h.Add(k,v)); Store Commit Commit Headers Event1 Event2 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 !66
  95. 95. A. var aggregate = repository.GetById<TAggregate>(id); B. aggregate.Command(a,b,c); C. repository.Save(aggregate, commitId, h => h.Add(k,v)); Store Commit Observers Commit Headers Event1 Event2 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Dispatch Commit Projections Process Managers Clients !66
  96. 96. Command State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  97. 97. ubiquitous language Interrogazione Command State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  98. 98. Domain
 Exception ubiquitous language Interrogazione Command State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  99. 99. Domain
 Exception ubiquitous language Interrogazione Command Event (ok) State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  100. 100. Domain
 Exception ubiquitous language Interrogazione Command Event (ko) Event (ok) State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  101. 101. Domain
 Exception ubiquitous language Interrogazione Command Event (ko) Event (ok) Router State !67 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  102. 102. Svantaggi !68 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  103. 103. Quantità di codice dipende.. !69 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  104. 104. Quantità di codice tanto !69 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  105. 105. Quantità di codice tanto ma dannatamente semplice !69 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  106. 106. Vantaggi !70 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  107. 107. Focus su struttura dati !71 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  108. 108. Focus su comportamento !71 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  109. 109. Focus su comportamento business value !71 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  110. 110. Decisioni prese su stato (stale) !72 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  111. 111. Decisioni prese su stato corrente !72 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  112. 112. Decisioni prese su stato corrente by design !72 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  113. 113. Costo di implementazione esponenziale !73 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  114. 114. Costo di implementazione lineare !73 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  115. 115. Costo di implementazione lineare eventi++ !73 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  116. 116. Testing complesso !74 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  117. 117. Testing facile !74 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  118. 118. Testing facile stato -> comando -> eventi !74 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  119. 119. Collisioni transazioni (tutto o niente) !75 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  120. 120. Collisioni merge intelligenti / replay !75 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  121. 121. Collisioni merge intelligenti / replay by design !75 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  122. 122. Integrabilità batch / etl / ws ad hoc / trigger !76 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  123. 123. Integrabilità evento -> subscriber !76 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  124. 124. Integrabilità evento -> subscriber push o pull !76 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  125. 125. !77 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  126. 126. !78 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  127. 127. !79 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  128. 128. !79 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  129. 129. !79 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  130. 130. !79 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  131. 131. Nei test runner diventa !80 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  132. 132. Join the dots !81 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  133. 133. !82 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  134. 134. Register Resource Resource Registered !83 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  135. 135. !84 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  136. 136. !85 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  137. 137. !86 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  138. 138. stato Handler eventi Interrogazioni allo stato in UL !87 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  139. 139. !88 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  140. 140. !89 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  141. 141. !90 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  142. 142. !91 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  143. 143. !92 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  144. 144. !93 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  145. 145. Ricapitolando !94 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  146. 146. Event Storming Common
 Domain NEventStore DDD #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Machine Specifications !94
  147. 147. http://github.com/andreabalducci/cdays14 !95 #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  148. 148. Elogio alla community “…gli user group sono stati lo strumento che maggiormente mi hanno permesso di imparare sia come scrivere software in modo nettamente migliore, sia come affrontare le altre componenti relative alla gestione di un prodotto o di un progetto. Ciò è stato possibile grazie al dialogo e al confronto con persone intelligenti e disponibili a scambiare gratuitamente le proprie idee, opinioni ed esperienze, col coraggio di riportare anche quelle fallimentari, invece di chiudersi nel proprio orticello cercando di nascondere i propri segreti. Questo è lo scambio culturale, che porta ad un’effettiva crescita, a cui tutti coloro che svolgono la nostra professione farebbero bene a partecipare e contribuire.” Elogio alla community - @ste8 #CDays14 – Milano 25, 26 e 27 Febbraio 2014 !96
  149. 149. Conclusioni #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  150. 150. Emersione rapida… • … della complessità • del problema business • dei conflitti #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  151. 151. Troppa complessità #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  152. 152. EventStorming non è la pillola per diventare intelligenti #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  153. 153. EventStorming ci permette di scoprire dove abbiamo torto …il prima possibile #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  154. 154. rapporto costi/benefici • Alcuni domini chiamano a gran voce EventSourcing • …su altri non è che ci sia poi tutta questa complessità. • ma… #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  155. 155. CRUD #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Assumo ORA di non avere bisogno della storia del dato in futuro
  156. 156. Quanto costa la colla? #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  157. 157. Ignorance is the single greatest impediment to throughput. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 http://dannorth.net/2010/08/30/introducing-deliberate-discovery/ Dan North
  158. 158. Customer Satisfaction #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  159. 159. Domain Events #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  160. 160. Domain Events • Lo-Fi —> Gli esperti ci correggono #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  161. 161. Domain Events • Lo-Fi —> Gli esperti ci correggono • Transizioni di stato —> Maggior precisione e ricchezza del linguaggio #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  162. 162. Domain Events • Lo-Fi —> Gli esperti ci correggono • Transizioni di stato —> Maggior precisione e ricchezza del linguaggio • Non ragiono più in tabelle. —> non costringo gli utenti ad adattarsi. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  163. 163. Domain Events • Lo-Fi —> Gli esperti ci correggono • Transizioni di stato —> Maggior precisione e ricchezza del linguaggio • Non ragiono più in tabelle. —> non costringo gli utenti ad adattarsi. • Faccio le domande giuste #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  164. 164. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 UX
  165. 165. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  166. 166. Scenari classici • Analisi redditività • Fraud detection • Analisi temporali • Predittività e correlazioni (scenario walmart) • … #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  167. 167. gli esperti ci aiutano a capire #CDays14 – Milano 25, 26 e 27 Febbraio 2014 e noi aiutiamo loro ©  Alberto  Brandolini  2009
  168. 168. Cicli corti #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  169. 169. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  170. 170. #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  171. 171. Per saperne di più… • http://ziobrando.blogspot.it/2013/11/ introducing-event-storming.html • https://it.groups.yahoo.com/neo/groups/ DDD-IT/ • 19 marzo a Roma / 2 aprile a Bologna #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  172. 172. Grazie! #CDays14 – Milano 25, 26 e 27 Febbraio 2014
  173. 173. Q&A Tutto il materiale di questa sessione su http://www.communitydays.it/ ! Lascia il feedback su questa sessione, potrai essere estratto per i nostri premi! ! Seguici su Twitter @CommunityDaysIT Facebook http://facebook.com/cdaysit #CDays14 #CDays14 – Milano 25, 26 e 27 Febbraio 2014

×