Si vous avez -500 euros sur votre compte en banque, qu’est-ce qui vous intéresse ? De savoir que vous êtes à découvert de 500 euros (état de votre compte) ou qu’un prélèvement a été fait la veille d’un montant de 2500 euros (évènement) ?
Avec tous les évènements qui ont eu lieu sur votre compte, vous pouvez en déduire l’état. Avec son état, c’est compliqué de retrouver les évènements qui en sont la cause.
Alors pourquoi programmons nous en nous basant sur des états au lieu de nous baser sur des évènements ? Nous verrons donc comment remettre les évènements au centre de nos réflexions, d’un point de vue technique et fonctionnel. Nous parlerons pour cela d’Event Storming, de CQRS, d’Event Sourcing et de DDD.
18. Partage de connaissance
Compréhension partagée du problème qui justifie
cette solution
@ouarzy
«It’s developer’s
understanding, not your
knowledge that become
software! »
- @ziobrando
19. Et le code dans tout ça?
@ouarzy
Sinon moi je veux
bien livrer des
post-it…
20. Event Sourcing
Inspiré de Jérémie Chassaing
Decide
Apply
Aggregate
Commands Events
Decision
Projection
Store
Side
Effects
Outside
World
@ouarzy
21. CQRS
Inspiré de Greg Young
Commands
Aggregates
Events
Projections--------------
Nice
User Interface
------------
Outside
Real
World
Com
m
and
Query
@ouarzy
27. Aligner le code et le métier
Montrez votre code aux experts métier…
…Ils ne comprennent pas?
Vous êtes le problème.
@ouarzy
28. Car le métier va évoluer
Un code simple à modifier
No time for testing death spiral
Pressure
TestingErrors + -
+
+-
-
@ouarzy
29. Une vraie équipe
Chef de projet
Expert métier
Utilisateur
Développeur
Développeur
Testeur
30. En résumé
Les évènements sont importants pour être plus proche du métier
Dans l’analyse du problème
Et dans l’implémentation de la solution
Juste des exemples…