SlideShare ist ein Scribd-Unternehmen logo
1 von 173
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Idea - post-it - test verdi.

Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStoreAndrea Balducci
 
Vs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows AzureVs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows AzureAntonio Liccardi
 
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 ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...Marco Parenzan
 
Connettere le persone per raccontare un territorio | Todi Appy Days
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
 
Vs03 – migliorare la qualità del codice con vs 2013
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
 
ORIENT UXpress / How cultural diversities affect user experience
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
 
Misurazione del video sul Web
Misurazione del video sul WebMisurazione del video sul Web
Misurazione del video sul WebPortante Andrea
 
Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Davide Mauri
 

Ähnlich wie Idea - post-it - test verdi. (8)

Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStore
 
Vs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows AzureVs04 - DevOps: Continuous Deployment con Windows Azure
Vs04 - DevOps: Continuous Deployment con Windows Azure
 
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 ...
Sviluppare applicazioni web (completamente) on-line con Visual Studio Online ...
 
Connettere le persone per raccontare un territorio | Todi Appy Days
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
 
Vs03 – migliorare la qualità del codice con vs 2013
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
 
ORIENT UXpress / How cultural diversities affect user experience
ORIENT UXpress / How cultural diversities affect user experienceORIENT UXpress / How cultural diversities affect user experience
ORIENT UXpress / How cultural diversities affect user experience
 
Misurazione del video sul Web
Misurazione del video sul WebMisurazione del video sul Web
Misurazione del video sul Web
 
Azure Machine Learning (Italian)
Azure Machine Learning (Italian)Azure Machine Learning (Italian)
Azure Machine Learning (Italian)
 

Mehr von Alberto Brandolini

L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalitàAlberto Brandolini
 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Alberto Brandolini
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingAlberto Brandolini
 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise softwareAlberto Brandolini
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio managementAlberto Brandolini
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionAlberto Brandolini
 
Why do all my ddd apps look the same - Vienna 2014
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 2014Alberto Brandolini
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimationAlberto Brandolini
 

Mehr von Alberto Brandolini (20)

L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalità
 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021
 
What lies beneath
What lies beneathWhat lies beneath
What lies beneath
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
 
Extreme DDD modelling
Extreme DDD modellingExtreme DDD modelling
Extreme DDD modelling
 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
 
La fatina dei denti
La fatina dei dentiLa fatina dei denti
La fatina dei denti
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
The alignment
The alignmentThe alignment
The alignment
 
Chasing elephants
Chasing elephantsChasing elephants
Chasing elephants
 
Optimized for what
Optimized for whatOptimized for what
Optimized for what
 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise software
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio management
 
The precision blade
The precision bladeThe precision blade
The precision blade
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
 
Why do all my ddd apps look the same - Vienna 2014
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
 
Managing debt remastered
Managing debt remasteredManaging debt remastered
Managing debt remastered
 
The sweet spot
The sweet spotThe sweet spot
The sweet spot
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimation
 

Kürzlich hochgeladen

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 

Kürzlich hochgeladen (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 

Idea - post-it - test verdi.