Introduction to DDD

38
Introduction to Domain Driven Design Ferose Khan J

description

Domain driven design changed the way I did design. I wanted to introduce this to our new team. This presentation just introduces the main concepts of DDD. This is the first presentation that I am uploading to slides share.

Transcript of Introduction to DDD

Page 1: Introduction to DDD

Introduction to Domain Driven Design

Ferose Khan J

Page 2: Introduction to DDD

01 WHY BOTHER ABOUT DOMAIN?

Page 3: Introduction to DDD

Domain

“Every software program relates to some activity or interest of its user. That subject area to which the user applies the program is the DOMAIN of the software.”

Page 4: Introduction to DDD

Story…

Page 5: Introduction to DDD

02 IS UNDERSTANDING DOMAIN EASY?

Page 6: Introduction to DDD

Let’s have some fun

Page 7: Introduction to DDD

What I wanted

Page 8: Introduction to DDD

Crunching Knowledge

• Brainstorming• Continuous learning• Effective modeling• Make concepts explicit

Page 9: Introduction to DDD

Language…

Page 10: Introduction to DDD

Communication

• Ubiquitous language• Model out loud• One team one language• Documents & diagram aid

communication

Page 11: Introduction to DDD

03 HOW TO BIND MODEL & IMPLEMENTATION?

Page 12: Introduction to DDD

Problem

Analysis Model Design model

Page 13: Introduction to DDD

Analysis model

Module1

Module2

Module3 Module4

Module3 Module8 Module9

Module5 Module6

Page 14: Introduction to DDD

Design model

Page 15: Introduction to DDD

Where’s the problem?

Page 16: Introduction to DDD

Ivory tower architect

No feedback from team

Page 17: Introduction to DDD

Results in brave speeches in the end

Page 18: Introduction to DDD

Solutions is hands-on modelers

Page 19: Introduction to DDD

Do Model Driven Design

• One model• Analysis and design one iterative

loop• Design a little• Make code an expression of model

Page 20: Introduction to DDD

04 WHAT ABOUT OTHER TECHNICAL REQUIREMENTS?

Page 21: Introduction to DDD

Isolate the domain from them

Page 22: Introduction to DDD

Model lives @Domain layer

Page 23: Introduction to DDD

05 HOW TO EXPRESS MODEL IN S/W?

Page 24: Introduction to DDD

Entities

Page 25: Introduction to DDD

Value Objects

Page 26: Introduction to DDD

Associations

Page 27: Introduction to DDD

Services

Page 28: Introduction to DDD

06 WHAT ABOUT THE LIFE CYCLE OF DOMAIN OBJECT?

Page 29: Introduction to DDD

Aggregates

Page 30: Introduction to DDD

Factories

Page 31: Introduction to DDD

Repositories

Page 32: Introduction to DDD

07 SO WHAT?

Page 33: Introduction to DDD

Our Domain

Page 34: Introduction to DDD

Medical software

• Saves life• Improves quality of life

Page 35: Introduction to DDD

Give a try

Page 36: Introduction to DDD

Questions?

Page 37: Introduction to DDD

Thanks

Page 38: Introduction to DDD

Ferose Khan Jeberlat @ferosekhanjd ferosekhanj.wordpress.coml http://lnkd.in/UJry2c