Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Domain Driven Design
Search
Romain TOUZE
July 25, 2017
Technology
0
67
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
110
Au secours ! On n'a pas de projet en Python dans ma boite !
rtouze
0
96
Un editeur de texte pourquoi pas Vim (reprise)
rtouze
0
130
Un éditeur de texte ? Pourquoi pas Vim ?
rtouze
0
360
Other Decks in Technology
See All in Technology
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
150
Databricks におけるデータエンジニアリング
databricksjapan
0
380
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
150
Databricks における 『MLOps』
databricksjapan
2
140
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
550
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
4
310
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
240
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
24
5.3k
ユーザーストーリーのレビューを自動化したみたの
bun913
1
340
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.6k
「ふりかえりのふりかえり」をふりかえり、実のあるふりかえりにする
naitosatoshi
0
230
Hands-on / Kaname Frusawa / Cloud Compare Users Meetup 2024 at University of Tokyo on April 17
paraworld
2
480
Featured
See All Featured
Optimizing for Happiness
mojombo
370
69k
It's Worth the Effort
3n
180
27k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Visualization
eitanlees
135
14k
Happy Clients
brianwarren
91
6.4k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Building Adaptive Systems
keathley
30
1.9k
Designing for Performance
lara
601
67k
Code Reviewing Like a Champion
maltzj
513
39k
The Mythical Team-Month
searls
215
42k
Web development in the modern age
philhawksworth
202
10k
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 !