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
84
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
140
Au secours ! On n'a pas de projet en Python dans ma boite !
rtouze
0
110
Un editeur de texte pourquoi pas Vim (reprise)
rtouze
0
240
Un éditeur de texte ? Pourquoi pas Vim ?
rtouze
0
460
Other Decks in Technology
See All in Technology
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
530
社内レビューは機能しているのか
matsuba
0
120
OCHaCafe S11 #2 コンテナ時代の次の一手:Wasm 最前線
oracle4engineer
PRO
2
130
銀行の内製開発にて2つのプロダクトを1つのチームでスクラムしてみてる話
koba1210
1
120
DevOpsエージェントで実現する!! AWS Well-Architected(W-A) を実現するシステム設計 / 20260307 Masaki Okuda
shift_evolve
PRO
3
730
[2026-03-07]あの日諦めたスクラムの答えを僕達はまだ探している。〜守ることと、諦めることと、それでも前に進むチームの話〜
tosite
0
220
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
1
340
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
240
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
11
2.2k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.2k
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
430
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
90
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
400
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Navigating Weather and Climate Data
rabernat
0
140
Design in an AI World
tapps
0
170
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
150
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Speed Design
sergeychernyshev
33
1.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
480
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 !