Top Banner
31

Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

Jan 24, 2017

Download

Software

Robert Šorn
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016
Page 2: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

ROBERT ŠORN@BIGBLACKSTEEL

DAD, HUSBAND, HACKER

LEADER OF MEN

Page 3: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

team lead @

head of education@

Page 4: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

DOMAIN DRIVENDESIGN

IN A NUTSHELLLJUBLJANA WEBCAMP 2016

Page 5: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

If you want to build a ship, don't drum up people to collectwood and don't assign them tasks and work, but ratherteach them to long for the endless immensity of the sea.

Antoine de Saint-Exupéry

Page 6: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

DDD IS FORSIMPLE

COMPLEXPROBLEMS.

Page 7: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

WHY?

Page 8: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

"'Ce n'est pas possible', m'ecrivez-vous: cela n'est pas français."

Napoleon Bonaparte, 1813

Page 9: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

"You say it is not possible", but I write to you:

that word is not in a programmer's dictionary.

Eric Evans, 2003

Page 10: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

COMPLEXITYIS POSSIBLE WITHOUT

CONFUSIONMESS IN CODE AND ARCHITECTURE

NOT UNDERSTANDING WHAT IS GOING ONDIFFICULTY IN COMMUNICATION

SLOW DEVELOPMENT

Page 11: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

http://dddcommunity.org/book/evans_2003/

Page 12: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

HOW?

Page 13: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

BY UNDERSTANDINGSOLVE TODAY

SOLVE TODAY &PREPARE FORTOMORROW

Page 14: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

“The heart of so�ware is its ability to solve domain-relatedproblems for its user.”

Eric Evans, 2003

Page 15: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

BY UNDERSTANDINGTHAT

YOU ARE NOT ALONE

Page 16: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

BY UNDERSTANDINGTHAT

BRAIN HAS LIMITS

Page 17: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

WHAT?

Page 18: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

YOU MODEL THE REAL WORLDDOMAIN

WORDSUML&CO

CODE

Page 19: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

UBIQUITOUSLANGUAGE

INTENTION NOT THEIMPLEMENTATION

DEEP INSIGHTSREFACTOR THE LANGUAGE

Page 20: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

STRATEGIC DESIGNBOUNDED CONTEXTS

CONTEXT MAPS...ENABLES CHANGE...

Page 21: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

MODELING THEDOMAIN

Page 22: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

PATTERNS

SOMEONE HAD A SIMILAR PROBLEMTHESE WERE THE CHALLENGES THEY FACED

THIS IS HOW THEY SOLVED AND/OR BYPASSED THEM

Page 23: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

STRUCTURE PATTERNS

ENTITY, VALUE OBJECT, SERVICE,AGGREGATE, ...

Page 24: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

LIFE CYCLE PATTERNS

FACTORY, REPOSITORY, ...

Page 25: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

BEHAVIOR PATTERNS

SPECIFICATION, STRATEGY, COMPOSITE, ...

Page 26: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

NAMING STUFF

DESCRIBE BEHAVIOUR.DON'T DO WHAT YOU DON'T SAY YOU DO.

Page 27: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

CLOSURE OF OPERATIONSQUERIES, COMMANDS

...

Page 28: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

APPLICATIONARCHITECTURE

Page 29: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

HOMEWORKERIC EVANS

"DOMAIN-DRIVEN DESIGN: TACKLING COMPLEXITY INTHE HEART OF SOFTWARE"

http://dddcommunity.org/book/evans_2003/

Page 30: Domain Driven Design In A Nutshell - Ljubljana Webcamp 2016

HOMEWORK