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
77
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
130
Au secours ! On n'a pas de projet en Python dans ma boite !
rtouze
0
100
Un editeur de texte pourquoi pas Vim (reprise)
rtouze
0
210
Un éditeur de texte ? Pourquoi pas Vim ?
rtouze
0
440
Other Decks in Technology
See All in Technology
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
670
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
300
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
本が全く読めなかった過去の自分へ
genshun9
0
670
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
370
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
150
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
160
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
0
250
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
1
110
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1k
AI専用のリンターを作る #yumemi_patch
bengo4com
1
340
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.7k
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Done Done
chrislema
184
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Unsuck your backbone
ammeep
671
58k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Being A Developer After 40
akosma
90
590k
Optimizing for Happiness
mojombo
379
70k
Six Lessons from altMBA
skipperchong
28
3.9k
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 !