Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Domain Driven Design
Romain TOUZE
July 25, 2017
Technology
0
50
Domain Driven Design
FR - une rapide présentation sur le domain driven design.
Romain TOUZE
July 25, 2017
Tweet
Share
More Decks by Romain TOUZE
See All by Romain TOUZE
Python the good parts
rtouze
0
66
Au secours ! On n'a pas de projet en Python dans ma boite !
rtouze
0
81
Un editeur de texte pourquoi pas Vim (reprise)
rtouze
0
88
Un éditeur de texte ? Pourquoi pas Vim ?
rtouze
0
330
Other Decks in Technology
See All in Technology
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
260
MRTK3 - DataBinding and Theming 入門
futo23
0
130
出張スクラムマスターとしての FEARLESS CHANGE な生き方
naitosatoshi
1
1.1k
リファインメントは楽しいかね?
kitamu_mu
1
330
インタラクティブなメディアの地図投影法: WebメルカトルからAdaptive Projectionsへ / MIERUNE 社内勉強会 #033
sorami
2
210
Modern Android dependency injection
hugovisser
1
110
SI企業が「アジャイル推し」になったら 幸せになれますか?/Can SI company be happy if it becomes “Agile stan” ?
chinmo
1
1k
RDRA + JavaによるレジャーSaaSプロダクトの要件定義と実装のシームレスな接続
jjebejj
PRO
2
480
miisan's career talk
mii3king
0
210
現状のFedCMの動作解説と OIDCとの親和性について- OpenID TechNight vol.19
ritou
2
400
データエンジニアリングの潮流を俯瞰する
tetsuroito
1
710
視座とアジャイル / shiza_and_agile
kyoshimoto
0
180
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.7k
4 Signs Your Business is Dying
shpigford
169
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Thoughts on Productivity
jonyablonski
43
2.3k
Designing for humans not robots
tammielis
241
23k
The World Runs on Bad Software
bkeepers
PRO
57
5.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
10
3.3k
Gamification - CAS2011
davidbonilla
75
3.9k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Documentation Writing (for coders)
carmenhchung
48
2.5k
Making the Leap to Tech Lead
cromwellryan
113
7.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
Transcript
DOMAIN DRIVEN DESIGN AKA DDD Romain TOUZÉ
ORIGINES Eric Evans
None
POURQUOI ? Modèle anémique Applications centrées sur la base de
données Structurations techniques Sous utilisation de la POO (primitive obsession)
CONTROLLER, BEAN, SERVICE, IMPL…
QUE FAIT MON OBJET ?
None
None
LA BASE
UBIQUITUOUS LANGUAGE dans les CR de workshop… dans les specs
dans les tests dans le code
ALLER VOIR LES MÉTIERS Dé nir les contextes délimités (bounded
contexts) qui vont constituer l'application Acquérir le vocabulaire Challenger le métier BDD
BOUNDED CONTEXTS ?
BOUNDED CONTEXTS ? Utilisation d'un progiciel… Équipes différentes…
PROPOSITION D'IMPLÉMENTATION
DÉCOUPLER L'INFRASTRUCTURE DU CODE MÉTIER
ARCHITECTURE HEXAGONALE
ANTICORRUPTION LAYER
OBJETS
ENTITÉS Représente les éléments du domaine ayant un cycle de
vie et un identi ant dans le SI. Objets muables
VALEURS (VALUE OBJECTS) Représente une donnée associée aux entités Objet
immuables Évite l'obsession des primitives (primitive obsession)
EXEMPLE : UN MONTANT Integer ? Float ? OK, mais
si je dois gérer plusieurs devises ? OK, mais si je dois faire de l'arithmétique en gérant plusieurs devises ?
AGRÉGATS Arborescence d'entités et de valeurs Les opérations se font
sur la racine uniquement
SERVICES
EN GÉNÉRAL Les actions qui ne peuvent pas être portées
par les objets eux-mêmes
REPOSITORY Récupération et stockage dans la couche de persistance
FACTORY Traduction des informations envoyées au système
RAPPEL
AUJOURD'HUI
LIMITATIONS Scalabilité ? Contextualisation lecture / écriture ?
SCALABILITÉ
CQRS Command Query Responsibility Segregation
CQRS
CQRS
CQRS
EVENT SOURCING
RÉFÉRENCE DDD Community CQRS, event sourcing, task based UI Hexagonal
architecture
C'EST TOUT POUR MOI !