WHY DOMAIN-DRIVEN DESIGN IS SORELEVANT TODAY?Jérémie GRODZISKIL’après-midi du Domain-Driven-Design Microsoft - June 2017
View Slide
A PERSONAL HISTORY OFCOMPUTING
MY FIRSTENCOUNTER
30 YEARSAFTER…
“SOFTWARE ISEATING THEWORLD”
IT HAS NEVERBEEN SO EASY TOBUILDSOFTWARE
BUT…
THE COST OFMAINTAININGSOFTWARE STAYTOO HIGH
THE HARSHREALITY
WHAT’S LEGACY?
THE 3 PILLARS OF COMPLEXITYDOMAIN SOFTWARE PEOPLE
TACKLINGCOMPLEXITY INTHE HEART OFSOFTWARE
THE HEART OF SOFTWARE?
DOMAIN?
A SET OF CONCEPTS THAT,THROUGH USE CASES,ALLOWS US TO SOLVE PROBLEMSDOMAIN?
DOMAIN: DOUBLE ENTRYACCOUNTINGSOLVED PROBLEMS: TRACKING,ROBUSTNESSCONCEPTS: ACCOUNT, DEBIT, CREDIT,AMOUNT, ETC.
DOMAIN: IDESOLVED PROBLEMS:PRODUCTIVITY, INTEGRATIONCONCEPTS: PROJECTS, FILES,ANALYSIS, REFACTORING, CVS,DEBUGGER, ETC.
HOW TO TACKLE COMPLEXITY?
BETTERALIGNMENTsolution spaceproblem space
WITH DDD WECONNECTsolution spaceproblem space
ALIGNMENTS REQUIRESUNDERSTANDING
OUR FIRST WORK AS DEVELOPER?UNDERSTAND THE DOMAINWE’LL HAVE TO CODE…OR MAINTAIN
BOTH ANAPPROACHAND ATOOLBOX
AN APPROACHFocus on business ValueLanguage is keyMake the implicit, explicit
MAKE THE IMPLICIT EXPLICIT?
DDD IS NOT A PROCESS!
DESIGN ISMAKINGDECISIONS
ALWAYSCONNECT YOUR DECISIONSTO YOURBUSINESS OBJECTIVES
DDD IS ALSO ATOOLBOX
A TWO STOREYTOOLBOX
TOOLS TO HELPWHILE CODINGTACTICAL PATTERNS
TOOLS TO HELPWHILE ARCHITECTINGSTRATEGICAL PATTERNS
DDD IN A NUTSHELLHOW BEST TO INTEGRATE THEDOMAIN IN THE SOFTWARE?
DDD IN A NUTSHELLBUILD WHAT THEY NEED,NOT WHAT YOU CAN
DISCLAIMER FOR TODAY