29
“It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” - Charles Darwin

Domain driven design in a nutshell

Embed Size (px)

Citation preview

Page 1: Domain driven design in a nutshell

“It is not the strongest of the species that survives, nor

the most intelligent that survives. It is the one that is

the most adaptable to change.”- Charles Darwin

Page 2: Domain driven design in a nutshell

What is a Problem Domain ?

Page 3: Domain driven design in a nutshell

In a Nutshell

Domain-DrivenDomain-Driven

Page 4: Domain driven design in a nutshell

Value.

Page 5: Domain driven design in a nutshell

Value.How to get it ?

Page 6: Domain driven design in a nutshell

“A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and baling-wire, spaghetti-code jungle.” - Brian Foote and Joseph Yoder

Page 7: Domain driven design in a nutshell
Page 8: Domain driven design in a nutshell

“It doesn’t take a lot of skill to get a program to work. The skill comes in when you have to keep it working.”

- Robert C. Martin @unclebobmartin

Page 9: Domain driven design in a nutshell
Page 10: Domain driven design in a nutshell

How Domain-Driven Design Can Help ?

Page 11: Domain driven design in a nutshell

Model What Is Core.

Page 12: Domain driven design in a nutshell
Page 13: Domain driven design in a nutshell
Page 14: Domain driven design in a nutshell
Page 15: Domain driven design in a nutshell

Core Domain

Page 16: Domain driven design in a nutshell

Domain Model

Page 17: Domain driven design in a nutshell
Page 18: Domain driven design in a nutshell
Page 19: Domain driven design in a nutshell

Ubiquitous Language.

Page 20: Domain driven design in a nutshell
Page 21: Domain driven design in a nutshell
Page 22: Domain driven design in a nutshell
Page 23: Domain driven design in a nutshell
Page 24: Domain driven design in a nutshell
Page 25: Domain driven design in a nutshell
Page 26: Domain driven design in a nutshell

The Problem Space

Page 27: Domain driven design in a nutshell

The Solution Space

Page 28: Domain driven design in a nutshell

• Domain-Driven Design is a development philosophy that values teams understanding the domain they are writing software for above anything else.

• It is a collaboration philosophy focused on delivery with communication playing a central role.

• The creation of a shared language is vital for knowledge sharing and domain understanding by the development team and business experts.

• Domain-Driven Design is more problem solving through collaboration than code patterns language.

• Learning and creating a language to communicate about the problem domain is the process of Domain-Driven Design, code is the artifact.

Page 29: Domain driven design in a nutshell

@toni_esteves