Idea - post-it - test verdi.

Alberto Brandolini
Alberto BrandoliniBook Author at Leanpub
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
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
Grazie a

Sponsor

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me
@ziobrando
alberto.brandolini@avanscoperta.it

DDD-IT
XPUG - Romagna

avanscoperta
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
About me
Certified DDD Trainer

@ziobrando
alberto.brandolini@avanscoperta.it

DDD-IT
XPUG - Romagna

avanscoperta
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
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
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
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
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
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
Il problema

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
#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
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
…da portare
sul cloud
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

!14
#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?
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mañana!!
© Alberto Brandolini 2013
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/
Learning is the
constraint

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
http://dannorth.net/2010/08/30/introducing-deliberate-discovery/

Dan North
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 2014
Tutti 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
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
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
Vedo i dati vecchi…

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Cambio!

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
@andreabalducci
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

!42
Event Sourcing
!43
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il nostro dominio
ha una storia
da raccontare…
!44
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
…ma spesso ci
accontentiamo
dei titoli di coda
!45
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!46
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
..invece di guardare
tutta la storia.
!47
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!48
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Quante informazioni
perdiamo ?
!49
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Il saldo è 6.684€
!50
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
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
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
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
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
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
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
Event Sourcing?


!53
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Event Sourcing?

ne ho sentito parlare…

!53
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Dominio
!54
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Aggregato

DB
ORM

Risorsa_1

Proprietà
Richiesta_1

Richiesta_2

Utente_1

Metodi
Risorsa_2

!55
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
ok.. basta una
tabella di log
!56
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
basta

!57
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
basta
duplicare tutte le strutture dati

!57
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
basta
duplicare tutte le strutture dati
tenere tutto sincronizzato

!57
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
basta
duplicare tutte le strutture dati
tenere tutto sincronizzato
versionare tutto

!57
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
basta uno storage
ad eventi
!58
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
NEventStore
A persistence agnostic Event Store for .NET

http://neventstore.org/

!59
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
CommonDomain
la “colla” tra DDD e NEventStore

!60
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Aggregato

DB
ORM

Risorsa_1

Proprietà
Richiesta_1

Richiesta_2

Utente_1

Metodi
Risorsa_2

!61
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
Evento
Chi
Quando
Dove
Cosa
Perché

!63
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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
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
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
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
Command

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
ubiquitous language

Interrogazione

Command

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain

Exception

ubiquitous language

Interrogazione

Command

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain

Exception

ubiquitous language

Interrogazione

Command

Event (ok)

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain

Exception

ubiquitous language

Interrogazione

Command

Event (ko)

Event (ok)

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Domain

Exception

ubiquitous language

Interrogazione

Command

Event (ko)

Event (ok)

Router

State

!67
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Svantaggi
!68
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Quantità di codice
dipende..

!69
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Quantità di codice
tanto

!69
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Quantità di codice
tanto
ma dannatamente semplice
!69
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Vantaggi
!70
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Focus su
struttura dati

!71
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Focus su
comportamento

!71
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Focus su
comportamento
business value
!71
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Decisioni prese su
stato (stale)

!72
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Decisioni prese su
stato corrente

!72
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Decisioni prese su
stato corrente
by design
!72
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Costo di implementazione
esponenziale

!73
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Costo di implementazione
lineare

!73
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Costo di implementazione
lineare
eventi++
!73
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Testing
complesso

!74
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Testing
facile

!74
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Testing
facile
stato -> comando -> eventi
!74
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Collisioni
transazioni (tutto o niente)

!75
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Collisioni
merge intelligenti / replay

!75
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Collisioni
merge intelligenti / replay
by design
!75
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Integrabilità
batch / etl / ws ad hoc / trigger

!76
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Integrabilità
evento -> subscriber

!76
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Integrabilità
evento -> subscriber
push o pull
!76
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!77
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!78
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!79
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Nei test runner diventa

!80
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Join the dots
!81
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!82
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Register
Resource

Resource
Registered

!83
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!84
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!85
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!86
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
stato

Handler eventi

Interrogazioni allo stato in UL

!87
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!88
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!89
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!90
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!91
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!92
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
!93
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Ricapitolando

!94
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Event Storming

Common

Domain

NEventStore

DDD

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Machine
Specifications

!94
http://github.com/andreabalducci/cdays14

!95
#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.”

Elogio alla community - @ste8
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

!96
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
CRUD
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Assumo ORA di non avere
bisogno della storia del dato
in futuro
Quanto costa la colla?

#CDays14 – Milano 25, 26 e 27 Febbraio 2014
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
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 2014
#CDays14 – Milano 25, 26 e 27 Febbraio 2014

UX
#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
gli esperti ci aiutano
a capire

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

e noi aiutiamo loro

©	
  Alberto	
  Brandolini	
  2009
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&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
1 of 173

Recommended

What's next? La Fine dell'Era del Buon Senso by
What's next? La Fine dell'Era del Buon SensoWhat's next? La Fine dell'Era del Buon Senso
What's next? La Fine dell'Era del Buon SensoStefano Maruzzi
337 views101 slides
Bullshit Asymmetry Principle lightning talk by
Bullshit Asymmetry Principle lightning talkBullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkAlberto Brandolini
15.3K views19 slides
Pissing against the wind by
Pissing against the windPissing against the wind
Pissing against the windAlberto Brandolini
3.2K views210 slides
It's not simple at all by
It's not simple at allIt's not simple at all
It's not simple at allAlberto Brandolini
2K views148 slides
Is growth hacking bullshit matt lerner FODM 2016 - Revised & Expanded with ne... by
Is growth hacking bullshit matt lerner FODM 2016 - Revised & Expanded with ne...Is growth hacking bullshit matt lerner FODM 2016 - Revised & Expanded with ne...
Is growth hacking bullshit matt lerner FODM 2016 - Revised & Expanded with ne...Matt Lerner
9K views19 slides
Liberate il kraken by
Liberate il krakenLiberate il kraken
Liberate il krakenAlberto Brandolini
5.1K views114 slides

More Related Content

Similar to Idea - post-it - test verdi.

Event Sourcing con NEventStore by
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStoreAndrea Balducci
1.1K views92 slides
Vs04 - DevOps: Continuous Deployment con Windows Azure by
Vs04 - DevOps: Continuous Deployment con Windows AzureVs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows AzureAntonio Liccardi
448 views17 slides
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ... by
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Marco Parenzan
630 views47 slides
Connettere le persone per raccontare un territorio | Todi Appy Days by
Connettere le persone per raccontare un territorio | Todi Appy DaysConnettere le persone per raccontare un territorio | Todi Appy Days
Connettere le persone per raccontare un territorio | Todi Appy DaysOfficina Turistica
951 views15 slides
Vs03 – migliorare la qualità del codice con vs 2013 by
Vs03 – migliorare la qualità del codice con vs 2013Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013Antonio Liccardi
434 views13 slides
ORIENT UXpress / How cultural diversities affect user experience by
ORIENT UXpress / How cultural diversities affect user experienceORIENT UXpress / How cultural diversities affect user experience
ORIENT UXpress / How cultural diversities affect user experienceUX Book Club Torino
1.1K views75 slides

Similar to Idea - post-it - test verdi.(8)

Event Sourcing con NEventStore by Andrea Balducci
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStore
Andrea Balducci1.1K views
Vs04 - DevOps: Continuous Deployment con Windows Azure by Antonio Liccardi
Vs04 - DevOps: Continuous Deployment con Windows AzureVs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows Azure
Antonio Liccardi448 views
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ... by Marco Parenzan
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
Marco Parenzan630 views
Connettere le persone per raccontare un territorio | Todi Appy Days by Officina Turistica
Connettere le persone per raccontare un territorio | Todi Appy DaysConnettere le persone per raccontare un territorio | Todi Appy Days
Connettere le persone per raccontare un territorio | Todi Appy Days
Officina Turistica951 views
Vs03 – migliorare la qualità del codice con vs 2013 by Antonio Liccardi
Vs03 – migliorare la qualità del codice con vs 2013Vs03 – migliorare la qualità del codice con vs 2013
Vs03 – migliorare la qualità del codice con vs 2013
Antonio Liccardi434 views
ORIENT UXpress / How cultural diversities affect user experience by UX Book Club Torino
ORIENT UXpress / How cultural diversities affect user experienceORIENT UXpress / How cultural diversities affect user experience
ORIENT UXpress / How cultural diversities affect user experience
UX Book Club Torino1.1K views
Azure Machine Learning (Italian) by Davide Mauri
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)
Davide Mauri1.6K views

More from Alberto Brandolini

L'illusione dell'ortogonalità by
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalitàAlberto Brandolini
630 views119 slides
Redesigning everything ITARC Stockholm 2021 by
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Alberto Brandolini
779 views120 slides
What lies beneath by
What lies beneathWhat lies beneath
What lies beneathAlberto Brandolini
1.7K views148 slides
Redesigning everything (avanscoperta meeutp edition) by
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
316 views91 slides
Extreme DDD modelling by
Extreme DDD modellingExtreme DDD modelling
Extreme DDD modellingAlberto Brandolini
1.8K views93 slides
The gordian knot by
The gordian knotThe gordian knot
The gordian knotAlberto Brandolini
965 views81 slides

More from Alberto Brandolini(20)

Redesigning everything (avanscoperta meeutp edition) by Alberto Brandolini
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
Alberto Brandolini316 views
Software design as a cooperative game with EventStorming by Alberto Brandolini
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
Alberto Brandolini2.2K views
Idea stickies green bar - Wroclaw edition by Alberto Brandolini
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
Alberto Brandolini3.6K views
Why do all my ddd apps look the same - Vienna 2014 by Alberto Brandolini
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014
Alberto Brandolini3.8K views
The final words about software estimation by Alberto Brandolini
The final words about software estimationThe final words about software estimation
The final words about software estimation
Alberto Brandolini32.7K views

Idea - post-it - test verdi.