SlideShare a Scribd company logo
1 of 188
ESSENTIAL DDD
@gboissinot
Dev	Day	ESGI
2017	February	23
SOFTWARE
DESIGN
DOMAIN
DRIVEN
DESIGN
DDD
DDD
IS AN APPROACH
DDD
IS AN APPROACH
TO SOFTWARE DESIGN
DDD
IS AN APPROACH
TO SOFTWARE DESIGN
FOR COMPLEX
BUSINESS NEEDS
THE MOST SIGNIFICANT
COMPLEXITY
OF MANY APPLICATIONS
IS NOT TECHNICAL
WE MUST
FOCUS MORE ON
THE BUSINESS CONCERNS
“Critical Complexity of most
software projects
is in understanding
the domain itself “
Eric Evans
THE DOMAIN
THE PROBLEM
AREA
The reality
THE DOMAIN
IS A
SPHERE OF KNOWLEDGE
THE DOMAIN
IS A SET OF
CONCEPTS EXPRESSING
DISTILLED KNOWLEDGE
THE	DOMAIN	
IS	A	SET	OF
CONCEPTS	EXPRESSING	
DISTILLED	KNOWLEDGE,	RULES,
ASSUMPTIONS, CONCEPTS	
ABOUT	A	BUSINESS	MODEL
THERE ARE
NO BORING
DOMAINS
COMPLEXITY
FROM THE
DOMAIN IS
INHERENT
COMPLEXITY
FROM THE
TECHNICAL
IS ACCIDENTAL
SOLVING COMPLEX
PROBLEMS BY USING
MODELS
A MODEL
A MODEL
REPRESENTS
A VIEW
A MODEL
DESCRIBES THE
OUTSIDE WORLD
A MODEL
IS ABOUT USEFULNESS
AROUND A SPECIFIC
SET OF PROBLEMS
A MODEL
IS ADAPTED
TO AN USAGE
ABSTRACTION
ABSTRACTION
IS TO FORGET THE
NON SIGNIFICANT DETAILS
ABSTRACTION
IS TO FORGET THE
NON SIGNIFICANT DETAILS
AND FOCUS ON
THE ESSENTIALS
AN ABSTRACTION
OF REALITY,
NOT A REFLECTION OF REAL
LIFE
PARIS	TOURIST	MAP
PARIS	METRO	MAP
WRONG MODELS
WRONG MODELS
CAUSE MASSIVE
ACCIDENTAL COMPLEXITY
WHAT
ARE ITS
USAGE ?
PARIS	TOURIST	AND	TRANSPORT	MAP	?
A MODEL
CONTAINS ONLY
WHAT IS RELEVANT
MODELS ARE NEITHER
“RIGHT” OR “WRONG”
BUT SOME ARE
USEFUL THAN OTHERS
DESIGN IS
MAKING
DECISIONS
DESIGN
IS THE ART OF
TRADE-OFF
THE DOMAIN MODEL
THE DOMAIN MODEL
IS AN ABSTRACTION
OF THE
PROBLEM DOMAIN
Domain
Domain Model
The reality
An abstraction of reality
designed to manage
complexity for specific
business cases
A projection
of the Real Domain
THE PROBLEM SPACE THE SOLUTION SPACE
SOFTWARE
DEVELOPMENT
AND ITS PROBLEMS
SCRUM PRODUCT BACKLOG
PRESSURE TO DELIVER
SOFTWARE RELEASES
ON A RELENTLESS
SCHEDULE
LACK	
OF	DESIGN
FOCUS ON SOLUTION SPACE
Language Framework
LibrariesInfra
CV
DRIVEN
APPROACH
POOR
COLLABORATION
UML JAVA / C#
POOR SYNCHRONIZATION
BETWEEN MODELS
Broken,	slow	and	locking	the	database
WRONG
LEVEL OF
ABSTRACTION
WHAT DOES
THE APPLICATION
DO ?
WHAT IS THE
APPLICATION
ABOUT ?
COMPLEX	DOMAINS
CAN	BECOME	
DIFFICULT	TO	MANAGE
It works but no one
knows how
Initial software
incarnation fast to
produce
time
without	care	and	
consideration
DATA
MODELS
INSTEAD OF
DOMAIN
MODELS
MOST DEVELOPERS
HAVE NEVER SEEN
A DOMAIN MODEL
THEY’VE ONLY SEEN
DATA MODELS
Database centric Architecture
BIG BALL OF MUD
IMPROVE YOUR CRAFT
IMPROVE YOUR CRAFT
AND INCREASE
YOUR SUCCESS ON
PROJECTS
CREATE BETTER SOFTWARE
MORE EASILY
CREATE BETTER SOFTWARE
MORE EASILY
BY FOCUSING ON THE
DOMAIN INSTEAD OF
THE TECHNOLOGY
TO FOCUS ON
BUSINESS VALUE
DDD
as	a	
bridge
PROBLEM	
SPACE
SOLUTION
SPACE
A TOOLSET : A COLLECTION OF PATTERNS, PRINCIPLES & PRACTICES
COLLABORATIVE
MODELING
STRATEGIC
DESIGN
(Context Mapping)
TACTICAL
DESIGN
(Building Blocks,
patterns)
DDD BREAKDOWN
PROBLEM SPACE
DOMAIN
COLLABORATIVE
DESIGN
CREATING
A USEFUL MODEL
IS A
COLLABORATIVE
EXPERIENCE
MANY
KNOWLEDGE CRUNCHING
TECHNIQUES
MANY
KNOWLEDGE CRUNCHING
TECHNIQUES
TO EXPLORE DOMAINS
MANY
KNOWLEDGE CRUNCHING
TECHNIQUES
TO EXPLORE DOMAINS
AND LEARN THE INTENT OF
THE BUSINESS
KNOWLEDGE CRUNCHING
IS THE ART
OF DISTILLING
RELEVANT INFORMATION
KNOWLEDGE CRUNCHING
IS THE ART
OF DISTILLING
RELEVANT INFORMATION
FROM
THE PROBLEM DOMAIN
CLARIFYING QUESTIONS
• What do you mean by … ?
• What might lead someone to
do / need .. ?
• What else might happen ...?
THIS LEADS TO
THE DISCOVERY OF
IMPORTANT CONCEPTS
ALLOWS THE TEAM TO
UNDERSTAND
WHAT IS NOT IMPORTANT
AND CAN BE EXCLUDED
FROM THE MODEL
DDD
IS
EXPLORATORY
BUSINESS USERS
ARE BUSY
PEOPLE
BUSINESS USERS
CAN ALSO FIND TIRING
AND DEEM IT
UNPRODUCTIVE
MAKE YOUR
KNOWLEDGE CRUNCHING
SESSIONS
FUN AND INTERACTIVE
INTRODUCE
SOME
FACILITATION GAMES
INTRODUCE SOME
FACILITATION GAMES
AND OTHER
FORMS OF REQUIREMENTS
GATHERING TO ENGAGE
YOUR AUDIENCE
EVENT STORMING
EventCommand
Actor
Question	?
THE GOAL OF
EVENT STORMING
IS TO DISCOVER
THE GOAL OF
EVENT STORMING
IS TO DISCOVER
NOT TO MAKE
A DECISION
DRIVE KNOWLEDGE
CRUNCHING
AROUND THE MOST
IMPORTANT USE CASE
OF THE SYSTEM
Jeff	Patton Alberto	Brandolini Eric	Evans
EMPLOY
KNOWLEDGE CRUNCHING
TECHNIQUES
TO PRODUCE
EFFECTIVE MODELS
CHALLENGE
YOUR MODEL
DON’T STOP
AT YOUR
FIRST IDEA
YOU WON’T GET IT RIGHT
THE FIRST TIME
GOOD DESIGN
IS IMPERFECT DESIGN
THE ONLY WAY
TO LEARN A COMPLEX SYSTEM
IS TO LIVE AND TO INTERACT
WITH IT
EXPERTS
DOESN’T KNOW
EVERYTHING
DON’T WAIT PERFECT TEAM
DON’T WAIT PERFECT TEAM
DON’T WAIT PERFECT PEOPLE
USE BDD
TO FOCUS ON
THE BEHAVIOR OF THE
APPLICATION AROUND
CONCRETE SCENARIOS
UBIQUITOUS
LANGUAGE
UBIQUITOUS LANGUAGE
VARIOUS EXPRESSIONS
OF THE MODEL
ARE BOUND
BY THE SAME LANGUAGE
WHEN MODELING,
EVERYONE SHOULD APPLY
A SHARED LANGAGE RICH
IN DOMAIN SPECIFIC
TERMINOLOGY
UBIQUITOUS	LANGUAGE	
IS	A	
SHARED	LANGUAGE
UBIQUITOUS	LANGUAGE	
IS	A	
SHARED	LANGUAGE
USED	BY	ALL	TEAM	MEMBERS
UBIQUITOUS	LANGUAGE	
IS	A	
SHARED	LANGUAGE
USED	BY	ALL	TEAM	
MEMBERS	TO	CONNECT	
ALL	ACTIVITIES	OF	THE	
TEAM	WITH	THE	SOFTWARE
BOUND BY
LANGUAGE
EXPRESSED AS
DIAGRAMS
EXPRESSED IN
CONVERSATION
EXPRESSED AS
DOCUMENTATION
EXPRESSED AS
CODE
THE
DOMAIN
MODEL
UML JAVA / C#
Ubiquitous
Language
UBIQUITOUS LANGUAGE
IS A KEY TOOL
SUBDOMAINS
DOMAIN	
IS	OFTEN COMPLEX
THE	DOMAIN
NOT	ALL	THE	PART	
OF	THE	PROBLEM	
NEED	PERFECT SOLUTION
DISTILL	LARGE	PROBLEM
DOMAINS	TO	REVEAL
THE	CORE	OPPORTUNITY
DISTILL	IN	SUBDOMAINS
FOCUS	EFFORT	
WHERE	IT	MATTERS
IDENTIFY
THE	CORE	DOMAIN	
AND	THE	CORE	COMPLEXITY
OSS	Lib
COTS
Contarcting
“Secret	Source”
SOLUTION SPACE
MOVE BUSINESS
IN YOUR CODE
DDD IS A PROCESS
THAT ALIGNS
YOUR CODE
WITH THE REALITY OF
YOUR PROBLEM DOMAIN
MAKE
THE IMPLICIT EXPLICIT
THE CODE MODEL IS THE
PRIMARY EXPRESSION OF
THE DOMAIN MODEL
DDD
ONLY REQUIRES
THE MODEL
TO BE KEPT ISOLATED FROM
TECHNICAL COMPLEXITIES
CAR	TIRE	SOLD
Gauranteed
one	year
SEND	A	DISCOUNT	
COUPON	TO		THE	
CUSTOMER
Yes
public class GuaranteedOneYearDeliveryOffer
{
public void after(CarTireSold delivery)
{
if (delivery.TimeTimeTaken.Exceeded(oneYear)
{
sendCarBreakDiscountCouponTo(delivery.Customer) ;
}
}
}
Don’t focus on technical details …
…talk in domain terns.
DDD
IS	TECHNICALLY	AGNOSTIC
THE CODE
AND THE DOMAIN MODEL
ARE KEPT IN SYNERGY
THE CODE
IS THE MODEL
THE CODE
IS THE TRUTH
BOUNDED CONTEXT
DECOMPOSE
THE SOLUTION SPACE
FOR COMPLEX
OR LARGE MODELS
DECOMPOSE
THE SOLUTION SPACE
AND DEVELOP MULTIPLE
MODELS WITHIN EXPLICIT
BOUNDARIES
CUSTOMER
CONTEXT	
<<SALES>>
Center	of	
interest
CONTEXT	
<<Accounting>>
Method	of	
payment
CONTEXT	
<<Order	Shippment>>
Address	Availability
A SINGLE LARGE AMBIGUOUS MODEL
BUSINESS	
USE	CASE
BUSINESS	
USE	CASE
BUSINESS	
USE	CASE
CONTEXT	
MATTERS
CONTEXT
<<SALES>>
Customer: Center of
interest
CONTEXT
<<ACCOUNTING>>
Customer: Method of
payment
CONTEXT
<<ORDER SHIPMENT>>
Customer: Address
Availability
MULTIPLE SMALLER EXPLICIT MODELS
A	BOUNDED	CONTEXT
A	BOUNDED	CONTEXT	
IS	A	SEMANTIC	CONTEXTUAL	
BOUNDARY
A	BOUNDED	CONTEXT	
PROTECTS	THE	DOMAIN	
MODEL AND	DEFINES	THE	
APPLICABILITY	BOUNDARY
DOMAIN	
MODEL
Bounded	
Context
BOUNDED	CONTEXT	
IS	THE	CONDITIONS	
WHICH	
A	PARTICULAR	MODEL
IS	DEFINED AND	APPLICABLE
GENERALLY	
BOUNDED	CONTEXTS	
MATCH	
SUBDOMAINS
ALIGN	BOUNDED	CONTEXTS	TO	SUBDOMAINS
Bounded	
ContextBounded	
Context
Bounded	
Context
Bounded	
Context
ALIGN	TEAMS	
TO	
BOUNDED	CONTEXTS
ARCHITECTURE STYLE
DDD
DOESN’T DICTATE
ANY SPECIAL
ARCHITECTURAL PATTERNS
PATTERNS
USED TO IMPLEMENT
BOUNDED CONTEXTS
SHOULD BE APPROPRIATE
TO THE COMPLEXITY
MANY MODELS
• Rich Domain Model
• CRUD Model
• Anemic Model
• Transaction Script Model
• etc
CHOOSE
THE RIGHT
DOMAIN
MODEL
BOUNDED	CONTEXTS	with	MODELS
CRUD
RICH	
MODEL
ANEMIC ANEMIC
HEURISTICS
PRACTICAL METHOD
NOT GUARANTEED TO BE
OPTIMAL OR PERFECT
PRACTICAL METHOD
NOT GUARANTEED TO BE
OPTIMAL OR PERFECT
BUT SUFFICIENT FOR
IMMEDIATE GOALS
o Favorite	Algorithms
o Favorites	Solutions
o Favorites	Approaches
o Our	Mental	Models
o Patterns
o etc
DO NOT BE BLOCKED ON
YOUR HEURISTICS
• System Layers
• ORM
• IOC
• Anemic Behaviours
HEXAGONAL
ARCHITECTURE
INSIDE
OUTSIDE
DOMAIN
INFRA
(HTTP,	MoM,	Databases,	etc)
DOMAIN
INFRA
(Ports	&	Adapters,	DMZs)
Hexagonal	 /	Onion	/	Ports-And-Adapters	Architecture
STRATEGIC DESIGN
COMPOSE
BOUNDED CONTEXTS
TO CREATE APPLICATIONS
USER	INTERFACE
APPLICATION
BOUNDED	CONTEXT	A BOUNDED	CONTEXT	B
BOUNDED	CONTEXT	C
USER	INTERFACE
INTEGRATE	MODELS
Mapping
INTEGRATION
PATTERNS ENABLE
BOUNDED CONTEXTS
TO COMMUNICATE
TACTICAL PATTERNS
• Value Objects
• Entities
• Aggregates
• Repositories
• Domain Services
• Application
Services
• Domain Events
DDD
IS NOT
A PATTERN LANGUAGE
AGGREGATE
AGGREGATE
IS A CLUSTER OF DOMAIN
OBJECTS
AGGREGATE
IS A CLUSTER OF DOMAIN
OBJECTS
THAT CAN BE TREATED AS
A SINGLE UNIT
AGGREGATE
IS A COLLECTION OF DATA
THAT WE INTERACT WITH
AS A UNIT
CONCLUSION
ALWAYS	
CONNECT		YOUR	
DECISIONS
TO	YOUR	
BUSINESS	
OBJECTIVES
GO FURTHER
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD

More Related Content

What's hot

A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
Introduction to Domain Driven Design
Introduction to Domain Driven DesignIntroduction to Domain Driven Design
Introduction to Domain Driven DesignChristos Tsakostas
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignŽilvinas Kuusas
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Domain driven design
Domain driven designDomain driven design
Domain driven designits_skm
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationOğuzhan Soykan
 
Діма Зубець ” The Zachman Framework for Enterprise Architecture”
Діма Зубець ” The Zachman Framework for Enterprise Architecture”Діма Зубець ” The Zachman Framework for Enterprise Architecture”
Діма Зубець ” The Zachman Framework for Enterprise Architecture”Dakiry
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignAOE
 

What's hot (20)

A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
Introduction to Domain Driven Design
Introduction to Domain Driven DesignIntroduction to Domain Driven Design
Introduction to Domain Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
 
Діма Зубець ” The Zachman Framework for Enterprise Architecture”
Діма Зубець ” The Zachman Framework for Enterprise Architecture”Діма Зубець ” The Zachman Framework for Enterprise Architecture”
Діма Зубець ” The Zachman Framework for Enterprise Architecture”
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Similar to DevDay2017 ESGI Essential DDD

Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignFrank Levering
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Yan Justino
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven designRick van der Arend
 
GDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdfGDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdfYashiGupta410690
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
An Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPChris Renner
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureCan Pekdemir
 
DevOps Handbook: Experiments in Accelerating Delivery
DevOps Handbook: Experiments in Accelerating DeliveryDevOps Handbook: Experiments in Accelerating Delivery
DevOps Handbook: Experiments in Accelerating DeliveryJim Grafmeyer
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application growsCarolina Karklis
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven designTim Mahy
 
IPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIIPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIRobert Lemke
 
Event Storming #10 DDDGreece
Event Storming #10 DDDGreeceEvent Storming #10 DDDGreece
Event Storming #10 DDDGreeceAntonios Klimis
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-designArnaud Bouchez
 

Similar to DevDay2017 ESGI Essential DDD (20)

SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
 
GDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdfGDSC NIET ORIENTATION ).pdf
GDSC NIET ORIENTATION ).pdf
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
DDD for POs
DDD for POsDDD for POs
DDD for POs
 
Soliworks presentation
Soliworks presentationSoliworks presentation
Soliworks presentation
 
BDD by example
BDD by exampleBDD by example
BDD by example
 
An Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHP
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal Architecture
 
DevOps Handbook: Experiments in Accelerating Delivery
DevOps Handbook: Experiments in Accelerating DeliveryDevOps Handbook: Experiments in Accelerating Delivery
DevOps Handbook: Experiments in Accelerating Delivery
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application grows
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven design
 
IPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIIPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DI
 
Event Storming #10 DDDGreece
Event Storming #10 DDDGreeceEvent Storming #10 DDDGreece
Event Storming #10 DDDGreece
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-design
 

More from Gregory Boissinot (20)

Practical Software Architecture DDD
Practical Software Architecture DDDPractical Software Architecture DDD
Practical Software Architecture DDD
 
DDD Introduction
DDD IntroductionDDD Introduction
DDD Introduction
 
Beyond Relational Databases
Beyond Relational DatabasesBeyond Relational Databases
Beyond Relational Databases
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup Introduction
 
Paris Redis Meetup Starting
Paris Redis Meetup StartingParis Redis Meetup Starting
Paris Redis Meetup Starting
 
PZ_Microservices101_20150210
PZ_Microservices101_20150210PZ_Microservices101_20150210
PZ_Microservices101_20150210
 
Spring Integration JUG SummerCamp 2013
Spring Integration JUG SummerCamp 2013Spring Integration JUG SummerCamp 2013
Spring Integration JUG SummerCamp 2013
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 
gradle_lavajug
gradle_lavajuggradle_lavajug
gradle_lavajug
 
Jenkins-meetup
Jenkins-meetupJenkins-meetup
Jenkins-meetup
 
JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Gradle_Paris2010
Gradle_Paris2010Gradle_Paris2010
Gradle_Paris2010
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Gradle_NormandyJUG
Gradle_NormandyJUGGradle_NormandyJUG
Gradle_NormandyJUG
 
Gradle_BreizJUG
Gradle_BreizJUGGradle_BreizJUG
Gradle_BreizJUG
 
Gradle_BordeauxJUG
Gradle_BordeauxJUGGradle_BordeauxJUG
Gradle_BordeauxJUG
 
Gradle_ToulouseJUG
Gradle_ToulouseJUGGradle_ToulouseJUG
Gradle_ToulouseJUG
 
Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105Jenkins_UserMeetup_Paris_201105
Jenkins_UserMeetup_Paris_201105
 
Gradle_ToursJUG
Gradle_ToursJUGGradle_ToursJUG
Gradle_ToursJUG
 

Recently uploaded

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Recently uploaded (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

DevDay2017 ESGI Essential DDD