Date post: | 17-Oct-2014 |
Category: |
Technology |
View: | 793 times |
Download: | 0 times |
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Idea —> Post-It —> Test Verdi
Idea
Post-it
Test Verdi!Alberto [email protected] @ziobrando http://ziobrando.blogspot.com
Andrea [email protected]
@andreabalducci
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Idea —> Post-it —> Test verdi
Alberto [email protected] @ziobrando http://ziobrando.blogspot.com
Andrea [email protected]
@andreabalducci
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Grazie a
Sponsor
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrando
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addicted
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinker
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinkerChaos summoner
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinkerChaos summonerIdea thief
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinkerChaos summonerIdea thiefLean & Agile
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinkerChaos summonerIdea thiefLean & AgileEntrepreneur
avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me@ziobrandoCertified DDD Trainer
Post-it addictedVisual thinkerChaos summonerIdea thiefLean & AgileEntrepreneur…never satisfied avanscoperta
DDD-IT
XPUG - Romagna
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il problema
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Costo delle modifiche
100 1 2 3 4 5 6 7 8 9
10
0
1
2
3
4
5
6
7
8
9
Complessità
Cos
to d
i mod
ifica
Label
Illusione del greenfield
“manutenzione”
Dobbiamo riscrivere
Non si può fare
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Imponente
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Imponente
Flessibile?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Ooops….
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il miglior modo per rimuovere il pattume dal
sistema è…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
non mettere pattume nel sistema
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Altrimenti…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014© Alberto Brandolini 2013
Application
ApplicationApp
lication
Application
Applicat
ion
Database
Application App
lication
Database
ci ritroviamo con la solita architettura
Applic
ation
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!14
…da portare sul cloud
#CDays14 – Milano 25, 26 e 27 Febbraio 2014© Alberto Brandolini 2013
#CDays14 – Milano 25, 26 e 27 Febbraio 2014© Alberto Brandolini 2013
Quando si fa refactoring?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014© Alberto Brandolini 2013
Quando si fa refactoring? Mañana!!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Ignorance is the single greatest impediment to throughput.
Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Learning is the constraint
Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Piano d’azione
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Piano d’azione
1. Cominciare con il piede giusto
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Piano d’azione
1. Cominciare con il piede giusto
2. Rimuovere gli ostacoli all’apprendimento
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
Event Storming!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
#CDays14 – Milano 25, 26 e 27 Febbraio 2014Tutti in una stanza?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
Si, TUTTO lo spazio
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il dominio…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Prenotazione risorse
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Video!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Video!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Video!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Che è successo?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
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
Roles & Responsibility
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Prima capiamo cosa sta dentro agli aggregati
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Poi capiamo che nome dargli
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Conceptual CQRS
Command
User
issues
influences
External information
influencesRead Model
Domain Modelto
Event
raises
Projection
notified to
updates
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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 2014Vedo i dati vecchi…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Cambio!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!42@andreabalducci
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Event Sourcing
!43
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!44
Il nostro dominio ha una storia
da raccontare…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!45
…ma spesso ci accontentiamo dei titoli di coda
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!46
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!47
..invece di guardare tutta la storia.
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!48
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!49
Quante informazioni perdiamo ?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il saldo è 6.684€
!50
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!51
Data Dare Avere Descrizione operazione3/2 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 Saldo al 22/2 : 6.684
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
Carnivori
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
Carnivori
Auto senza telepass
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
Carnivori
Auto senza telepass
Lui & Lei
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
Lei compra entro un’ora da lui
Carnivori
Auto senza telepass
Lui & Lei
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!52
Data Dare Avere Descrizione operazione3/2 160 Supermercato Le Fornaci - Castelfidardo4/2 1.500 ACME Spa - Stipendio Gennaio4/2 1.400 ACME Spa - Stipendio Gennaio
10/2 180 Supermercato Le Fornaci - Castelfidardo12/2 200 Mediaworld Ancona12/2 180 Pittarello Ancona14/2 80 Ristorante Osteria da Pippo17/2 200 IperSimply- Castelfidardo20/2 16 Autostrade Spa - Casello Bologna20/2 300 Mediaworld Bologna20/2 320 Carpisa Bologna20/2 75 Hotel Bologna21/2 16 Autostrade Spa - Casello Ancona22/2 180 amazon.it22/2 200 zalando.it
2.107 2.900 Saldo al 22/2 : 6.684
Due personeStessa Azienda
24/2 spesa a Castelfidardo Lei compra entro
un’ora da lui
Carnivori
Auto senza telepass
Lui & Lei
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!53
Event Sourcing?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!53
Event Sourcing?ne ho sentito parlare…
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Dominio
!54
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!55
Proprietà
Metodi
ORM
DB
Risorsa_1
Richiesta_1
Richiesta_2
Utente_1
Risorsa_2
Aggregato
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
ok.. basta una tabella di log
!56
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
basta
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
bastaduplicare tutte le strutture dati
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
bastaduplicare tutte le strutture datitenere tutto sincronizzato
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
bastaduplicare tutte le strutture datitenere tutto sincronizzatoversionare tutto
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
bastaduplicare tutte le strutture datitenere tutto sincronizzatoversionare tuttoun bel flag “comando io”
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!57
bastaduplicare tutte le strutture datitenere tutto sincronizzato
mapping! mapping! mapping! (cit)
versionare tuttoun bel flag “comando io”
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!58
basta uno storage ad eventi
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
NEventStoreA persistence agnostic Event Store for .NET
http://neventstore.org/
!59
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
CommonDomainla “colla” tra DDD e NEventStore
!60
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!61
Proprietà
Metodi
ORM
DB
Risorsa_1
Richiesta_1
Richiesta_2
Utente_1
Risorsa_2
Aggregato
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!62
Stato
Comandi
Eventi
Aggregato
Common Domain
Richiesta Creata
Richiesta Approvata
Prenotazione Confermata
PrenotazioneRespinta
Risorsa Acquistata
Risorsa Dismessa
EventStore
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!63
Evento
Quando
Cosa
Chi
Perché
Dove
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!64
Evento
Quando
Cosa
Chi
Perché
Dove
Timestamp: 2014-02-25T15:45
Headers: User_1
Aggregato: Presentazione
Slide Attiva: 1
PresentazioneIniziata
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!65
Evento
Quando
Cosa
Chi
Perché
Dove
Timestamp: 2014-02-25T15:45
Headers: User_1
Aggregato: Presentazione
Slide Attiva: 1
PresentazioneIniziata
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!66
A. var aggregate = repository.GetById<TAggregate>(id);
B. aggregate.Command(a,b,c);
C. repository.Save(aggregate, commitId, h => h.Add(k,v));
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!66
A. var aggregate = repository.GetById<TAggregate>(id);
B. aggregate.Command(a,b,c);
C. repository.Save(aggregate, commitId, h => h.Add(k,v));
Commit
Event1
Event2
Headers
Store Commit
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!66
A. var aggregate = repository.GetById<TAggregate>(id);
B. aggregate.Command(a,b,c);
C. repository.Save(aggregate, commitId, h => h.Add(k,v));
Commit
Event1
Event2
Headers
Store Commit
Observers
Dispatch Commit
Projections
Process Managers
Clients
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
State
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
State
Inte
rrog
azio
ne
ubiq
uito
us la
ngua
ge
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
State
DomainException
Inte
rrog
azio
ne
ubiq
uito
us la
ngua
ge
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
Event (ok)
State
DomainException
Inte
rrog
azio
ne
ubiq
uito
us la
ngua
ge
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
Event (ko)Event (ok)
State
DomainException
Inte
rrog
azio
ne
ubiq
uito
us la
ngua
ge
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!67
Command
Event (ko)Event (ok)
State
Router
DomainException
Inte
rrog
azio
ne
ubiq
uito
us la
ngua
ge
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!68
Svantaggi
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
dipende..
!69
Quantità di codice
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!69
tantoQuantità di codice
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!69
tantoQuantità di codice
ma dannatamente semplice
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!70
Vantaggi
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!71
Focus sustruttura dati
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!71
Focus sucomportamento
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!71
Focus sucomportamentobusiness value
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!72
Decisioni prese sustato (stale)
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
stato corrente
!72
Decisioni prese su
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
stato corrente
!72
Decisioni prese su
by design
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
esponenziale
!73
Costo di implementazione
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!73
Costo di implementazionelineare
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!73
Costo di implementazionelineare
eventi++
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!74
complessoTesting
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!74
Testingfacile
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!74
Testingfacile
stato -> comando -> eventi
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!75
transazioni (tutto o niente)Collisioni
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!75
Collisionimerge intelligenti / replay
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!75
Collisionimerge intelligenti / replay
by design
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!76
batch / etl / ws ad hoc / triggerIntegrabilità
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!76
Integrabilitàevento -> subscriber
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!76
Integrabilitàevento -> subscriber
push o pull
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!77
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!78
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!80
Nei test runner diventa
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!81
Join the dots
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!82
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!83
Register Resource
Resource Registered
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!84
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!85
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!86
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!87
stato
Handler eventi
Interrogazioni allo stato in UL
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!88
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!89
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!90
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!91
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!92
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!93
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!94
Ricapitolando
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!94
NEventStore Common Domain
Machine Specifications
Event Storming
DDD
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!95
http://github.com/andreabalducci/cdays14
#CDays14 – Milano 25, 26 e 27 Febbraio 2014#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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.”
!96Elogio alla community - @ste8
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Conclusioni
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Emersione rapida…
• … della complessità
• del problema business
• dei conflitti
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Troppa complessità
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
EventStorming non è la pillola per diventare
intelligenti
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
EventStorming ci permette di scoprire dove abbiamo torto …il prima possibile
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
CRUDAssumo ORA di non avere
bisogno della storia del dato in futuro
#CDays14 – Milano 25, 26 e 27 Febbraio 2014Quanto costa la colla?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Ignorance is the single greatest impediment
to throughput.
Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Customer Satisfaction
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain Events
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain Events• Lo-Fi —> Gli esperti ci correggono
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
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 2014UX
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Scenari classici• Analisi redditività
• Fraud detection
• Analisi temporali
• Predittività e correlazioni (scenario walmart)
• …
#CDays14 – Milano 25, 26 e 27 Febbraio 2014© Alberto Brandolini 2009
gli esperti ci aiutano a capire
e noi aiutiamo loro
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Cicli corti
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
Grazie!
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Q&ATutto 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