Pourquoi les evenements sont importants

Post on 15-Apr-2017

374 views 3 download

Transcript of Pourquoi les evenements sont importants

Pourquoi les évènements sont importants?

@ouarzy

http://www.ouarzy.com

@ouarzy

Data Driven / CRUD

@ouarzy

--------------Nice

User Interface(FORM)

------------

DATA(DB)

ORM

Data Driven / CRUD

Mais au fait pourquoi on fait du logiciel?

Automatiser des processus pour aider un métier

Data Driven / CRUD

@ouarzy

--------------Nice

User Interface(FORM)

------------

DATA(DB)

ORM

METIER?

Pro Tip

Accumuler des couches n’est pas la solution

@ouarzy

Architecture en couche--------------

NiceUser Interface

(FORM)------------

DATA(DB)

DATA ACCESS (ORM)

METIER

@ouarzy

Se centrer sur le métier

Domain DesignDriven

@ouarzy

Domain Driven

Mais comment mettre le métier au centre?

@ouarzy

Protéger la couche métier

@ouarzy

METIER

--------------Nice

User Interface(FORM)

------------

DATA(DB)

@ouarzy

Mieux: avoir une approche évènementielle

Comment?

Avec une approche évènementielleConstruire un logiciel

@ouarzy

Alors, on code quoi?

Analyse du problème

@ouarzy

Event Storming

@ouarzy

« The amount of energy to refute bulllshit is an order of

magnitude higher than to produce it »

- @ziobrando

@ouarzy

Le but?

Juste un exemple parmi d’autres…

Un exemple parmi d’autres

@ouarzy

Ubiquitous Language

@ouarzy

Partage de connaissanceCompréhension partagée du problème qui justifie

cette solution

@ouarzy

«It’s developer’s understanding, not your knowledge that become

software! »- @ziobrando

Et le code dans tout ça?

@ouarzy

Sinon moi je veux bien livrer des

post-it…

Event Sourcing

Inspiré de Jérémie Chassaing

Decide

Apply

Aggregate

Commands Events

DecisionProjection

Store

SideEffects

OutsideWorld

@ouarzy

CQRS

Inspiré de Greg Young

Commands

Aggregates

Events

Projections--------------Nice

User Interface------------

OutsideReal

World

Comman

d

Query@ouarzy

Changement de mentalité

Les limites?

@ouarzy

Plus difficile dans le code de suivre un cas d’utilisation

Les limites?

@ouarzy

Runtime

Artifact

Decision

Les idée reçues

C’est très complexe à implémenterC’est utile seulement pour Google

@ouarzy

Les idée reçues

C’est pas performantC’est que pour la performance

@ouarzy

Des architectures parmi d’autres

@ouarzy

Le but?

Juste un exemple parmi d’autres…

Aligner le code et le métier

Montrez votre code aux experts métier…

…Ils ne comprennent pas? Vous êtes le problème.

@ouarzy

Car le métier va évoluer

Un code simple à modifier

No time for testing death spiral

Pressure

TestingErrors + -

+

+-

-

@ouarzy

Une vraie équipeChef de projet

Expert métierUtilisateur

Développeur

DéveloppeurTesteur

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…

@ouarzy

Merci

http://www.ouarzy.com

References

https://leanpub.com/livingdocumentationLiving Documentation

Event Storming

@cyriux

https://leanpub.com/introducing_eventstorming@ziobrando

Domain Driven Design:Tackling Complexity In The Heart of Software@ericevans0

@ScottMillett

Patterns, Principles and Practices of DDD

References

@thinkb4coding

@gregyoung

https://goodenoughsoftware.net/

http://thinkbeforecoding.com/

@CarloPescio

http://www.physicsofsoftware.com/