DOMAIN DRIVEN DESIGN
                         Part III Refactoring Toward Deeper Insight

                                       Yukei Wachi




Sunday, August 2, 2009
AGENDA

    • Contents

    • Summary

    • Chapters

    • Conclusion




Sunday, August 2, 2009
CONTENTS
                                                        DDD
    •   Chapter 8: Breakthrough                                           SPECIFICATION
                                                        Supple Design
    •   Chapter 9: Making Implicit Concepts Explicit              Evans



    •   Chapter 10: Supple Design

    •   Chapter 11: Applying Analysis Patterns

    •   Chapter 12: Relating Design Patterns to the Model

    •   Chapter 13: Refactoring Toward Deeper Insight




Sunday, August 2, 2009
SUMMARY
    •   Part II              building blocks                  model

    •   Model                                     (“discovery process”)

         •               model          domain


         •   domain                              deep model




Sunday, August 2, 2009
8:BREAKTHROUGH
    •


    •   domain



    •




    •   “Knowledge crunching” ”UBIQUITOUS LANGUAGE”




Sunday, August 2, 2009
9:MAKING IMPLICIT CONCEPTS
                     EXPLICIT (1)
    •   Digging Out Concepts
         •   Listen to Language
              •


         •   Scrutinize Awkwardness
              •


         •   Contemplate Contradictions
              •


         •   Read the Book
              •


         •   Try, Try Again
              •




Sunday, August 2, 2009
9:MAKING IMPLICIT CONCEPTS
                     EXPLICIT (2)
    •   How to Model Less Obvious Kinds of Concepts
         •


         •   Explicit Constraints
              •          model


         •   Processes
              •   SERVICE                             STRATEGY


         •   SPECIFICATION
              •


              •   ※DSL




Sunday, August 2, 2009
10:SUPPLE DESIGN
    •


         •   INTENTION-REVEALING INTERFACES

         •   SIDE-EFFECT-FREE FUNCTION

         •   ASSERTIONS

         •   CONCEPTUAL CONTOURS

         •   STANDALONE CLASSES

         •   CLOSURE OF OPERATIONS




Sunday, August 2, 2009
11:APPLYING ANALYSIS PATTERNS
    •   “Read the Book”

    •   deep model

    •   Analysis Patterns                                 model



         •               Earning Interest with Accounts




Sunday, August 2, 2009
12:RELATING DESIGN PATTERNS
                TO THE MODEL
    •   “design patterns in the code” vs. “conceptual patterns in the model”

         •




         •   STRATEGY

              •




         •   COMPOSITE

              •                                   model




Sunday, August 2, 2009
13:REFACTORING TOWARD
                          DEEPER INSIGHT
    •


         •   domain


         •


         •


    •


         •




Sunday, August 2, 2009
CONCLUSION
    •   domain model                              MODEL-
        DRIVEN-DESIGN

    •                    domain     ”     ”
                  domain

         •               UNIQUITOUS LANGUAGE


    •                                   model
                                  Supple Design



Sunday, August 2, 2009
THANK YOU !




Sunday, August 2, 2009

DDD Part3 Retrospective

  • 1.
    DOMAIN DRIVEN DESIGN Part III Refactoring Toward Deeper Insight Yukei Wachi Sunday, August 2, 2009
  • 2.
    AGENDA • Contents • Summary • Chapters • Conclusion Sunday, August 2, 2009
  • 3.
    CONTENTS DDD • Chapter 8: Breakthrough SPECIFICATION Supple Design • Chapter 9: Making Implicit Concepts Explicit Evans • Chapter 10: Supple Design • Chapter 11: Applying Analysis Patterns • Chapter 12: Relating Design Patterns to the Model • Chapter 13: Refactoring Toward Deeper Insight Sunday, August 2, 2009
  • 4.
    SUMMARY • Part II building blocks model • Model (“discovery process”) • model domain • domain deep model Sunday, August 2, 2009
  • 5.
    8:BREAKTHROUGH • • domain • • “Knowledge crunching” ”UBIQUITOUS LANGUAGE” Sunday, August 2, 2009
  • 6.
    9:MAKING IMPLICIT CONCEPTS EXPLICIT (1) • Digging Out Concepts • Listen to Language • • Scrutinize Awkwardness • • Contemplate Contradictions • • Read the Book • • Try, Try Again • Sunday, August 2, 2009
  • 7.
    9:MAKING IMPLICIT CONCEPTS EXPLICIT (2) • How to Model Less Obvious Kinds of Concepts • • Explicit Constraints • model • Processes • SERVICE STRATEGY • SPECIFICATION • • ※DSL Sunday, August 2, 2009
  • 8.
    10:SUPPLE DESIGN • • INTENTION-REVEALING INTERFACES • SIDE-EFFECT-FREE FUNCTION • ASSERTIONS • CONCEPTUAL CONTOURS • STANDALONE CLASSES • CLOSURE OF OPERATIONS Sunday, August 2, 2009
  • 9.
    11:APPLYING ANALYSIS PATTERNS • “Read the Book” • deep model • Analysis Patterns model • Earning Interest with Accounts Sunday, August 2, 2009
  • 10.
    12:RELATING DESIGN PATTERNS TO THE MODEL • “design patterns in the code” vs. “conceptual patterns in the model” • • STRATEGY • • COMPOSITE • model Sunday, August 2, 2009
  • 11.
    13:REFACTORING TOWARD DEEPER INSIGHT • • domain • • • • Sunday, August 2, 2009
  • 12.
    CONCLUSION • domain model MODEL- DRIVEN-DESIGN • domain ” ” domain • UNIQUITOUS LANGUAGE • model Supple Design Sunday, August 2, 2009
  • 13.
    THANK YOU ! Sunday,August 2, 2009