Architecture héxagonale

JeanDetoeuf 446 views 19 slides Feb 03, 2017
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

Vous avez déjà essayé de changer de framework ?

Votre réaction à l'évocation de cette question est :

vous avez peur ... très peur
vous avez mal au budget
vous êtes très satisfait du framework choisi par l'archi il y a quelques années et qui n'a pas pris une ride b...


Slide Content

ARCHITECTUREARCHITECTURE
HÉXAGONALEHÉXAGONALE
HUMAN TALKS LYONHUMAN TALKS LYON
11 OCTOBRE 11 OCTOBRE 20162016

EN 10 MINUTES !EN 10 MINUTES !

JEAN DETOEUFJEAN DETOEUF
DÉVELOPPEURDÉVELOPPEUR
Pa s s i o n n é d e n o u v e l l e s t e c h n o l o g i e s
#jvm #docker #cra!smanship #rpi #diy

Qui a déjà tenté de changer de framework (DI, ORM, ...) ?
C'est galère ?

Code framework au milieu du code métier
Difficulté pour changer de framework
Te s t s t r o p l o u r d s

ARCHITECTURE EN COUCHEARCHITECTURE EN COUCHE
Simple à comprendre
Montre le flux de données

ARCHITECTURE EN COUCHEARCHITECTURE EN COUCHE
Simple avec une couche de présentation et une couche de
persistence
Les couches se mélangent dans le code

ARCHITECTURE HÉXAGONALEARCHITECTURE HÉXAGONALE
Pe r m et d ' i s o l e r l e co d e m ét i e r d u co d e d ' i n f ra s t r u c t u r e
Agnostique : amenez votre langage préféré
Fra m e w o r k k i l l e r

LANCEMENT D'UN PROJETLANCEMENT D'UN PROJET
Reporter les choix techniques
Connaissance métier limitée en début de projet
Te m p s
Connaissance
métier

CO N C E P TCO N C E P T
Code métier sans bibliothèque ni framework
Code technique dans des modules séparés
Métier
API REST
BDD Oracle
BDD
Cassandra
IHM
Alertes
Messaging

TESTS SIMPLIFIÉSTESTS SIMPLIFIÉS
Découpage des taches simplifié
TDD : dev/test métier, puis autres modules
Te s t s m é t i e r s a n s a v o i r à g é r e r l ' i n f r a
Va l i d a t i o n ra p i d e d u m ét i e r

ON COMMENCE QUAND ?ON COMMENCE QUAND ?
nouveau projet : simple à mettre en place
projet existant : démêlage de spaghettis

PERSPECTIVESPERSPECTIVES
Changer de framework
Changer de BDD
Migrer une partie des données (ie. SQL vers NoSQL)
Ajouter une interface (API, messaging, autre IHM)

PERMÉABILITÉPERMÉABILITÉ
Impossible d'utiliser du code "infra" dans le module
"métier"
Rien n'empêche d'avoir du code "métier" qui se retrouve
dans les modules "infra"

RETOUR D'EXPÉRIENCERETOUR D'EXPÉRIENCE
C'est le code "métier" qui va diriger le code "infra"
Penser à la performance (ie requête SQL dans une boucle)

DANS QUELS CAS NE PAS L'UTILISERDANS QUELS CAS NE PAS L'UTILISER
Fra m e w o r k
Librairie
Module technique

PREMIER PAS VERS LE DDDPREMIER PAS VERS LE DDD
Faire communiquer plusieurs héxagones, chacun
représentant un métier séparé
Un amateur pour faire une présentation du DDD ?

QUESTIONS ?QUESTIONS ?

MERCI POUR VOTRE ÉCOUTEMERCI POUR VOTRE ÉCOUTE
Cette présentation :
@thebignet
thebignet
ta l k- a rc h i - h exa