$30 off During Our Annual Pro Sale. View Details »

Why Domain-Driven Design is so Relevant Today?

Why Domain-Driven Design is so Relevant Today?

Jérémie Grodziski

June 07, 2017
Tweet

More Decks by Jérémie Grodziski

Other Decks in Programming

Transcript

  1. WHY DOMAIN-DRIVEN DESIGN IS SO
    RELEVANT TODAY?
    Jérémie GRODZISKI
    L’après-midi du Domain-Driven-Design Microsoft - June 2017

    View Slide

  2. A PERSONAL HISTORY OF
    COMPUTING

    View Slide

  3. MY FIRST
    ENCOUNTER

    View Slide

  4. 30 YEARS
    AFTER…

    View Slide

  5. “SOFTWARE IS
    EATING THE
    WORLD”

    View Slide

  6. IT HAS NEVER
    BEEN SO EASY TO
    BUILD
    SOFTWARE

    View Slide

  7. BUT

    View Slide

  8. THE COST OF
    MAINTAINING
    SOFTWARE STAY
    TOO HIGH

    View Slide

  9. THE HARSH
    REALITY

    View Slide

  10. WHAT’S LEGACY
    ?

    View Slide

  11. THE 3 PILLARS OF COMPLEXITY
    DOMAIN SOFTWARE PEOPLE

    View Slide

  12. TACKLING
    COMPLEXITY IN
    THE HEART OF
    SOFTWARE

    View Slide

  13. THE HEART OF SOFTWARE?

    View Slide

  14. DOMAIN?

    View Slide

  15. A SET OF CONCEPTS THAT,
    THROUGH USE CASES,
    ALLOWS US TO SOLVE PROBLEMS
    DOMAIN?

    View Slide

  16. DOMAIN: DOUBLE ENTRY
    ACCOUNTING
    SOLVED PROBLEMS: TRACKING,
    ROBUSTNESS
    CONCEPTS: ACCOUNT, DEBIT, CREDIT,
    AMOUNT, ETC.

    View Slide

  17. DOMAIN: IDE
    SOLVED PROBLEMS:
    PRODUCTIVITY, INTEGRATION
    CONCEPTS: PROJECTS, FILES,
    ANALYSIS, REFACTORING, CVS,
    DEBUGGER, ETC.

    View Slide

  18. HOW TO TACKLE COMPLEXITY
    ?

    View Slide

  19. BETTER
    ALIGNMENT
    solution space
    problem space

    View Slide

  20. WITH DDD WE
    CONNECT
    solution space
    problem space

    View Slide

  21. ALIGNMENTS REQUIRES
    UNDERSTANDING

    View Slide

  22. OUR FIRST WORK AS DEVELOPER?
    UNDERSTAND THE DOMAIN
    WE’LL HAVE TO CODE
    …OR MAINTAIN

    View Slide

  23. BOTH AN
    APPROACH
    AND A
    TOOLBOX

    View Slide

  24. AN APPROACH
    Focus on business Value
    Language is key
    Make the implicit, explicit

    View Slide

  25. MAKE THE IMPLICIT EXPLICIT
    ?

    View Slide

  26. DDD IS NOT A PROCESS
    !

    View Slide

  27. DESIGN IS
    MAKING
    DECISIONS

    View Slide

  28. ALWAYS
    CONNECT YOUR DECISIONS
    TO YOUR
    BUSINESS OBJECTIVES

    View Slide

  29. DDD IS ALSO A
    TOOLBOX

    View Slide

  30. A TWO STOREY
    TOOLBOX

    View Slide

  31. TOOLS TO HELP
    WHILE CODING
    TACTICAL PATTERNS

    View Slide

  32. TOOLS TO HELP
    WHILE ARCHITECTING
    STRATEGICAL PATTERNS

    View Slide

  33. DDD IN A NUTSHELL
    HOW BEST TO INTEGRATE THE
    DOMAIN IN THE SOFTWARE?

    View Slide

  34. DDD IN A NUTSHELL
    BUILD WHAT THEY NEED,
    NOT WHAT YOU CAN

    View Slide

  35. DISCLAIMER FOR TODAY

    View Slide