SlideShare a Scribd company logo
1 of 45
Download to read offline
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
IT’S ALL ABOUT THE DOMAIN, HONEY -
10 years of domain driven design
Dr. Carola Lilienthal, cl@wps.de, @cairolali
www.wps.de
19.01.2018 //// Seite 2WPS - Workplace Solutions GmbH
Dr. Carola Lilienthal
Geschäftsführerin
cl@wps.de
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
a @cairolali
cl@wps.de
www.llsa.de
19.01.2018 //// Seite 3WPS - Workplace Solutions GmbH
Software
Architecture
Requirement
Engineering
Workplace
of the Future
Software
Development
Enjoyable business
software!
WPS – Workplace Solutions GmbH
Training Domain-Driven Design
Advanced Level Module – german or english
wps.de/ddd
19.01.2018 //// Seite 6WPS - Workplace Solutions GmbH
WE ARE PROGRAMMER …
19.01.2018 //// Seite 7WPS - Workplace Solutions GmbH
... AND WE LOVE TECHNOLOGY
19.01.2018 //// Seite 8WPS - Workplace Solutions GmbH
WHAT IS DDD ABOUT?
An approach to software development,
whose central feature is the implementation of a domain model
It simplifies
design and
development practice Software
Domäne
19.01.2018 //// Seite 9WPS - Workplace Solutions GmbH
SOFTWARE AS A REFLECTION OF THE DOMAIN
19.01.2018 //// Seite 10WPS - Workplace Solutions GmbH
STARTING DOMAIN DRIVEN DESIGN
At the beginning of a software project :
Focus on the domain in which the software is used
How do you create software that matches a domain?
Understanding software as a
reflection of the domain
Integrate core concepts and
domain elements into the
software
Depict their interrelationships
Create a domain model
19.01.2018 //// Seite 11WPS - Workplace Solutions GmbH
DOMAIN SPEAK – EXAMPLE PORT
Container
Container number
4300
Crane
Twistlock
Bill of lading
19.01.2018 //// Seite 12WPS - Workplace Solutions GmbH
Domain
Lingo
Techno
Babble
?
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 13WPS - Workplace Solutions GmbH
Techno
Babble
Domain
Lingo
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 14WPS - Workplace Solutions GmbH
Fach-
sprache
Techno
Babble
Domain
Lingo
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 15WPS - Workplace Solutions GmbH
Domain
Lingo
Techno
Babble
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 16WPS - Workplace Solutions GmbH
Domain
Lingo
{
Techno
Babble
}
?
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 17WPS - Workplace Solutions GmbH
Domain
Lingo
{
Domain
Lingo
}
MOTIVATION UBIQUITOUS LANGUAGE
19.01.2018 //// Seite 18WPS - Workplace Solutions GmbH
UBIQUITOUS LANGUAGE
Use the common language in
All communications
Speech
Writing
Diagrams
In the code
Basically everywhere that is why it is called a ubiquitous language
19.01.2018 //// Seite 19WPS - Workplace Solutions GmbH
LANGUAGE DOES NOT APPEAR OVERNIGHT
Weeks and months
Of hard work
A lot of focus
Find the key concepts
The first words in the ubiquitous language come usually
directly from the domain
Later own words are defined…
19.01.2018 //// Seite 20WPS - Workplace Solutions GmbH
19.01.2018 //// Seite 21WPS - Workplace Solutions GmbH
DOMAIN SPEAK – EXAMPLE CHESS
Board
King
Pieces
Player
Chess clock
19.01.2018 //// Seite 22WPS - Workplace Solutions GmbH
UBIQUTIOUS LANGUAGE – EXAMPLE CHESS
Board
Pieces
Player
Non-Human Player
19.01.2018 //// Seite 23WPS - Workplace Solutions GmbH
LANGUAGE IS A LIVING THING
Experiment with alternative expressions
The model and the language evolve
Then refactor the code
Rename classes, methods, modules
Conform to the new model
A Language has to be spoken:
Resolve confusion in conversation
19.01.2018 //// Seite 24WPS - Workplace Solutions GmbH
19.01.2018 //// Seite 25WPS - Workplace Solutions GmbH
TACTICAL AND STRATEGIC DESIGN
DDD gives modelling advice both at large and small scale
Strategic design
Divide your Domain into separated Bounded Contexts
Each Bounded Context has its own Domain Model and Ubiquitous Language
Context Mapping helps understanding the relations between Bounded
Contexts
Tactical Design
Inside a Bounded Context
Building Blocks: Entity, Value Object,
Aggregate, Service, Repository, Factory
19.01.2018 //// Seite 26WPS - Workplace Solutions GmbH
LARGE PROJECTS
Require multiple teams
Development is done parallel
Each team is assigned to a specific part of the model
One big model?
19.01.2018 //// Seite 27WPS - Workplace Solutions GmbH
THE OVERALL CONSISTENT MODEL
In the 1990th fruitless tried on data models
The idea was to create one model for an entire enterprise or even an entire
domain
High degree of coordination between teams
Often ends up in a big ball of mud
19.01.2018 //// Seite 28WPS - Workplace Solutions GmbH
ONE SHARED MODEL
Separate Use Cases
19.01.2018 //// Seite 29WPS - Workplace Solutions GmbH
ONE SHARED MODEL
Separate Use Cases The model dispersed among use cases
19.01.2018 //// Seite 30WPS - Workplace Solutions GmbH
HOW TO FIND SUBDOMAINS?
Boarders within the business processes of the domain
Existing team and department boundaries(domain sections)
Exclusive domain experts
Contextual language
Data uniqueness
19.01.2018 //// Seite 32WPS - Workplace Solutions GmbH
LIVING IN A BOX
Set explicit limits...
One team per bounded context
Maintain consistency within limits
No distraction from external affairs
A separate code base and database schema
Free design of a partial model by a team
Know the restrictions
Stay within the model boundaries
Work fast within your limits
19.01.2018 //// Seite 33WPS - Workplace Solutions GmbH
TYPES OF DOMAINS WITH STRATEGIC DESIGN FRO DDD
Types of subdomains
Core domain
Supporting domain
Generic domain
Context Mapping
Shared Kernel
Customer/Supplier
Open-Host-Service
Published Language
Separate Ways
Anticorruption Layer
19.01.2018 //// Seite 34WPS - Workplace Solutions GmbH
BUILDING BLOCKS = DESIGN PATTERNS
Services
Value Objects
Entities/
Aggregate
stateless
Domain concept are changeable
by the user and ensure their
consistency themself.
Unchangeable domain value with a
value range and validation
"Mikrolayering“
19.01.2018 //// Seite 35WPS - Workplace Solutions GmbH
BUILDING BLOCKS
Wurzel-Entity
Entity
Entity
Entity
Entity
VO
VO VO
VO
VO VO VO VO
VO
VO
VO
VO
Aggregate
Service
19.01.2018 //// Seite 36WPS - Workplace Solutions GmbH
WHAT WE SHOULD NOT BUILD
✘
ANEMIC DOMAIN MODEL
„anemic“ domain objects
Interfaces that have no meaning
Just get and set methods
A lot of String parameter
The domain functionality is not in
entities or value objects but in services
and UI
A lot of util, Helper and Manager classes
19.01.2018 //// Seite 37WPS - Workplace Solutions GmbH
ANEMIC ROBUSTNESS IS MISSING
Design depth
Design is unclear and hard to
comprehend
Domain functionality is spread
throughout the whole system
Copy & Paste - Programming
Expensive maintenance
Duplicated code
Many Refactorings
Hard to test
19.01.2018 //// Seite 38WPS - Workplace Solutions GmbH
GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM
119 classes from 4 „bounded contexts“
+ 28 other classes in cylces
WHAT WE SHOULD NOT BUILD
CYCLES
19.01.2018 //// Seite 39WPS - Workplace Solutions GmbH
WHAT WE SHOULD NOT BUILD
327 classe from 8 „bounded contexts“
need each other
19.01.2018 //// Seite 40WPS - Workplace Solutions GmbH
19.01.2018 //// Seite 41WPS - Workplace Solutions GmbH
BROWNFIELD STRATEGIC DESIGN
a tangled monolith with several domain models mixed with one another
Untangling:
1. Identify the different subdomains
in the monolith
2. Define the ubiquitous language
for each identified subdomain
3. Examine entities whether
decomposition or refactoring is
possible. Test coverage!
4. If necessary, duplication of the
entities and gradual expansion of the functionality that is not required.
5. Distribute the source code into bounded contexts
6. Start to separate the data of the bounded contexts in the database
7. Separate functional from technical code
19.01.2018 //// Seite 42WPS - Workplace Solutions GmbH
DDD SEPARATES DOMAIN AND TECHNICAL CODE
Domain
Application
Port & Adapter
Gateway
Transformation
P & A
G/T
Web-Client
Rich Client
Web-Client
Rich Client
RDBMS
NoSQL
RDBMS
NoSQL
Everybody is telling us the same!
• Domain-Driven Design
(Evans 2004)
• Hexagonal Architecture
(Cockburn 1990/2005)
• Onion/Clean Architecture
(Jeffrey Palermo 2008 /
Robert C. Martin 2012)
• QUASAR = Quality Software
Architecture (SD&M 2004)
• T&M = Tools & Material Approach
(Züllighoven 1990)
19.01.2018 //// Seite 45WPS - Workplace Solutions GmbH
MEETUPS
@DDDger
19.01.2018 //// Seite 46WPS - Workplace Solutions GmbH
CONFERENCES
Germanys first DDD conference
Training Domain-Driven Design
Advanced Level Module – german or english
wps.de/ddd
19.01.2018 //// Seite 48WPS - Workplace Solutions GmbH
Dr. Carola Lilienthal
Geschäftsführerin
cl@wps.de
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
a @cairolali
cl@wps.de
www.llsa.de
Thanks for listening!

More Related Content

Similar to Its all about the domain honey engl

AD308: XPages in a Social World
AD308: XPages in a Social WorldAD308: XPages in a Social World
AD308: XPages in a Social Worldpaidi_ed
 
Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...LetsConnect
 
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...IBM Connections Developers
 
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...Niklas Heidloff
 
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...Obeo
 
CloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioningCloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioningShapeBlue
 
Inteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeInteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeLuciano Resende
 
Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack ShapeBlue
 
Extending Apostrophe to build a variable-based CMS for rendering PDF brochures
Extending Apostrophe to build a variable-based CMS for rendering PDF brochuresExtending Apostrophe to build a variable-based CMS for rendering PDF brochures
Extending Apostrophe to build a variable-based CMS for rendering PDF brochuresSpike Brehm
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...Luciano Resende
 
The European Collaboration with a Swiss twist
The European Collaboration with a Swiss twistThe European Collaboration with a Swiss twist
The European Collaboration with a Swiss twistBelsoft
 
Belsoft Collaboration Day 2018 - Watson Workspace Übersicht
Belsoft Collaboration Day 2018 - Watson Workspace ÜbersichtBelsoft Collaboration Day 2018 - Watson Workspace Übersicht
Belsoft Collaboration Day 2018 - Watson Workspace ÜbersichtBelsoft
 
Data Driven Development of Autonomous Driving at BMW
Data Driven Development of Autonomous Driving at BMWData Driven Development of Autonomous Driving at BMW
Data Driven Development of Autonomous Driving at BMWDataWorks Summit
 
Using Drupal as a Content Hub to create an interactive, visual product explor...
Using Drupal as a Content Hub to create an interactive, visual product explor...Using Drupal as a Content Hub to create an interactive, visual product explor...
Using Drupal as a Content Hub to create an interactive, visual product explor...Jan Pilarzeck
 
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...Docker, Inc.
 
Approaches of Companies in Germany to the Social Web
Approaches of Companies in Germany to the Social WebApproaches of Companies in Germany to the Social Web
Approaches of Companies in Germany to the Social WebThomas Pleil
 
PresentationThomasPleilandDanielKoempel
PresentationThomasPleilandDanielKoempelPresentationThomasPleilandDanielKoempel
PresentationThomasPleilandDanielKoempelSerge Cornelus
 

Similar to Its all about the domain honey engl (20)

AD308: XPages in a Social World
AD308: XPages in a Social WorldAD308: XPages in a Social World
AD308: XPages in a Social World
 
Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...Building Custom ibm Watson Workspace Templates to make you and your team more...
Building Custom ibm Watson Workspace Templates to make you and your team more...
 
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...
IBM Connect 2014 - BP207: Don’t Reinvent the Wheel – (Re)use Open Source Soft...
 
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...
IBM Connect 2014 - BP207 - Don’t Reinvent the Wheel - (Re)use Open Source Sof...
 
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...
[SiriusCon 2020] Pushing Limits in Automotive Model Visualization at BOSCH - ...
 
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMakerHow to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
 
RCIM 2008 - - hArtes Atmel
RCIM 2008 - - hArtes AtmelRCIM 2008 - - hArtes Atmel
RCIM 2008 - - hArtes Atmel
 
CloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioningCloudStack EU user group - fast SAP provisioning
CloudStack EU user group - fast SAP provisioning
 
[EN] Decisions and Timing, a Practical Guide | Dr. Ulrich Kampffmeyer | PROJE...
[EN] Decisions and Timing, a Practical Guide | Dr. Ulrich Kampffmeyer | PROJE...[EN] Decisions and Timing, a Practical Guide | Dr. Ulrich Kampffmeyer | PROJE...
[EN] Decisions and Timing, a Practical Guide | Dr. Ulrich Kampffmeyer | PROJE...
 
Inteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeInteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for Code
 
Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack Fast SAP system provisioning based on CloudStack
Fast SAP system provisioning based on CloudStack
 
Extending Apostrophe to build a variable-based CMS for rendering PDF brochures
Extending Apostrophe to build a variable-based CMS for rendering PDF brochuresExtending Apostrophe to build a variable-based CMS for rendering PDF brochures
Extending Apostrophe to build a variable-based CMS for rendering PDF brochures
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
 
The European Collaboration with a Swiss twist
The European Collaboration with a Swiss twistThe European Collaboration with a Swiss twist
The European Collaboration with a Swiss twist
 
Belsoft Collaboration Day 2018 - Watson Workspace Übersicht
Belsoft Collaboration Day 2018 - Watson Workspace ÜbersichtBelsoft Collaboration Day 2018 - Watson Workspace Übersicht
Belsoft Collaboration Day 2018 - Watson Workspace Übersicht
 
Data Driven Development of Autonomous Driving at BMW
Data Driven Development of Autonomous Driving at BMWData Driven Development of Autonomous Driving at BMW
Data Driven Development of Autonomous Driving at BMW
 
Using Drupal as a Content Hub to create an interactive, visual product explor...
Using Drupal as a Content Hub to create an interactive, visual product explor...Using Drupal as a Content Hub to create an interactive, visual product explor...
Using Drupal as a Content Hub to create an interactive, visual product explor...
 
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
DCEU 18: Designing a Global Centralized Container Platform for a Multi-Cluste...
 
Approaches of Companies in Germany to the Social Web
Approaches of Companies in Germany to the Social WebApproaches of Companies in Germany to the Social Web
Approaches of Companies in Germany to the Social Web
 
PresentationThomasPleilandDanielKoempel
PresentationThomasPleilandDanielKoempelPresentationThomasPleilandDanielKoempel
PresentationThomasPleilandDanielKoempel
 

More from Carola Lilienthal

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...Carola Lilienthal
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...Carola Lilienthal
 
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtTechnische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtCarola Lilienthal
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honeyCarola Lilienthal
 
From pair programming to mob architecting
From pair programming to mob architecting From pair programming to mob architecting
From pair programming to mob architecting Carola Lilienthal
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honeyCarola Lilienthal
 
Technische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenTechnische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenCarola Lilienthal
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 

More from Carola Lilienthal (12)

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
 
Monolithen mit ddd zerlegen
Monolithen mit ddd zerlegenMonolithen mit ddd zerlegen
Monolithen mit ddd zerlegen
 
The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtTechnische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
From pair programming to mob architecting
From pair programming to mob architecting From pair programming to mob architecting
From pair programming to mob architecting
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
Technische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenTechnische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigen
 
Langlebige architekturen
Langlebige architekturenLanglebige architekturen
Langlebige architekturen
 
Technische schulden abbauen
Technische schulden abbauenTechnische schulden abbauen
Technische schulden abbauen
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 

Recently uploaded

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 

Its all about the domain honey engl

  • 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG IT’S ALL ABOUT THE DOMAIN, HONEY - 10 years of domain driven design Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de
  • 2. 19.01.2018 //// Seite 2WPS - Workplace Solutions GmbH Dr. Carola Lilienthal Geschäftsführerin cl@wps.de www.wps.de +49 40 229 499-0 +49 40 229 499-299 +49 170 184 77 11 Diplom-Informatikerin @cairolali a @cairolali cl@wps.de www.llsa.de
  • 3. 19.01.2018 //// Seite 3WPS - Workplace Solutions GmbH Software Architecture Requirement Engineering Workplace of the Future Software Development Enjoyable business software! WPS – Workplace Solutions GmbH
  • 4.
  • 5. Training Domain-Driven Design Advanced Level Module – german or english wps.de/ddd
  • 6. 19.01.2018 //// Seite 6WPS - Workplace Solutions GmbH WE ARE PROGRAMMER …
  • 7. 19.01.2018 //// Seite 7WPS - Workplace Solutions GmbH ... AND WE LOVE TECHNOLOGY
  • 8. 19.01.2018 //// Seite 8WPS - Workplace Solutions GmbH WHAT IS DDD ABOUT? An approach to software development, whose central feature is the implementation of a domain model It simplifies design and development practice Software Domäne
  • 9. 19.01.2018 //// Seite 9WPS - Workplace Solutions GmbH SOFTWARE AS A REFLECTION OF THE DOMAIN
  • 10. 19.01.2018 //// Seite 10WPS - Workplace Solutions GmbH STARTING DOMAIN DRIVEN DESIGN At the beginning of a software project : Focus on the domain in which the software is used How do you create software that matches a domain? Understanding software as a reflection of the domain Integrate core concepts and domain elements into the software Depict their interrelationships Create a domain model
  • 11. 19.01.2018 //// Seite 11WPS - Workplace Solutions GmbH DOMAIN SPEAK – EXAMPLE PORT Container Container number 4300 Crane Twistlock Bill of lading
  • 12. 19.01.2018 //// Seite 12WPS - Workplace Solutions GmbH Domain Lingo Techno Babble ? MOTIVATION UBIQUITOUS LANGUAGE
  • 13. 19.01.2018 //// Seite 13WPS - Workplace Solutions GmbH Techno Babble Domain Lingo MOTIVATION UBIQUITOUS LANGUAGE
  • 14. 19.01.2018 //// Seite 14WPS - Workplace Solutions GmbH Fach- sprache Techno Babble Domain Lingo MOTIVATION UBIQUITOUS LANGUAGE
  • 15. 19.01.2018 //// Seite 15WPS - Workplace Solutions GmbH Domain Lingo Techno Babble MOTIVATION UBIQUITOUS LANGUAGE
  • 16. 19.01.2018 //// Seite 16WPS - Workplace Solutions GmbH Domain Lingo { Techno Babble } ? MOTIVATION UBIQUITOUS LANGUAGE
  • 17. 19.01.2018 //// Seite 17WPS - Workplace Solutions GmbH Domain Lingo { Domain Lingo } MOTIVATION UBIQUITOUS LANGUAGE
  • 18. 19.01.2018 //// Seite 18WPS - Workplace Solutions GmbH UBIQUITOUS LANGUAGE Use the common language in All communications Speech Writing Diagrams In the code Basically everywhere that is why it is called a ubiquitous language
  • 19. 19.01.2018 //// Seite 19WPS - Workplace Solutions GmbH LANGUAGE DOES NOT APPEAR OVERNIGHT Weeks and months Of hard work A lot of focus Find the key concepts The first words in the ubiquitous language come usually directly from the domain Later own words are defined…
  • 20. 19.01.2018 //// Seite 20WPS - Workplace Solutions GmbH
  • 21. 19.01.2018 //// Seite 21WPS - Workplace Solutions GmbH DOMAIN SPEAK – EXAMPLE CHESS Board King Pieces Player Chess clock
  • 22. 19.01.2018 //// Seite 22WPS - Workplace Solutions GmbH UBIQUTIOUS LANGUAGE – EXAMPLE CHESS Board Pieces Player Non-Human Player
  • 23. 19.01.2018 //// Seite 23WPS - Workplace Solutions GmbH LANGUAGE IS A LIVING THING Experiment with alternative expressions The model and the language evolve Then refactor the code Rename classes, methods, modules Conform to the new model A Language has to be spoken: Resolve confusion in conversation
  • 24. 19.01.2018 //// Seite 24WPS - Workplace Solutions GmbH
  • 25. 19.01.2018 //// Seite 25WPS - Workplace Solutions GmbH TACTICAL AND STRATEGIC DESIGN DDD gives modelling advice both at large and small scale Strategic design Divide your Domain into separated Bounded Contexts Each Bounded Context has its own Domain Model and Ubiquitous Language Context Mapping helps understanding the relations between Bounded Contexts Tactical Design Inside a Bounded Context Building Blocks: Entity, Value Object, Aggregate, Service, Repository, Factory
  • 26. 19.01.2018 //// Seite 26WPS - Workplace Solutions GmbH LARGE PROJECTS Require multiple teams Development is done parallel Each team is assigned to a specific part of the model One big model?
  • 27. 19.01.2018 //// Seite 27WPS - Workplace Solutions GmbH THE OVERALL CONSISTENT MODEL In the 1990th fruitless tried on data models The idea was to create one model for an entire enterprise or even an entire domain High degree of coordination between teams Often ends up in a big ball of mud
  • 28. 19.01.2018 //// Seite 28WPS - Workplace Solutions GmbH ONE SHARED MODEL Separate Use Cases
  • 29. 19.01.2018 //// Seite 29WPS - Workplace Solutions GmbH ONE SHARED MODEL Separate Use Cases The model dispersed among use cases
  • 30. 19.01.2018 //// Seite 30WPS - Workplace Solutions GmbH HOW TO FIND SUBDOMAINS? Boarders within the business processes of the domain Existing team and department boundaries(domain sections) Exclusive domain experts Contextual language Data uniqueness
  • 31. 19.01.2018 //// Seite 32WPS - Workplace Solutions GmbH LIVING IN A BOX Set explicit limits... One team per bounded context Maintain consistency within limits No distraction from external affairs A separate code base and database schema Free design of a partial model by a team Know the restrictions Stay within the model boundaries Work fast within your limits
  • 32. 19.01.2018 //// Seite 33WPS - Workplace Solutions GmbH TYPES OF DOMAINS WITH STRATEGIC DESIGN FRO DDD Types of subdomains Core domain Supporting domain Generic domain Context Mapping Shared Kernel Customer/Supplier Open-Host-Service Published Language Separate Ways Anticorruption Layer
  • 33. 19.01.2018 //// Seite 34WPS - Workplace Solutions GmbH BUILDING BLOCKS = DESIGN PATTERNS Services Value Objects Entities/ Aggregate stateless Domain concept are changeable by the user and ensure their consistency themself. Unchangeable domain value with a value range and validation "Mikrolayering“
  • 34. 19.01.2018 //// Seite 35WPS - Workplace Solutions GmbH BUILDING BLOCKS Wurzel-Entity Entity Entity Entity Entity VO VO VO VO VO VO VO VO VO VO VO VO Aggregate Service
  • 35. 19.01.2018 //// Seite 36WPS - Workplace Solutions GmbH WHAT WE SHOULD NOT BUILD ✘ ANEMIC DOMAIN MODEL „anemic“ domain objects Interfaces that have no meaning Just get and set methods A lot of String parameter The domain functionality is not in entities or value objects but in services and UI A lot of util, Helper and Manager classes
  • 36. 19.01.2018 //// Seite 37WPS - Workplace Solutions GmbH ANEMIC ROBUSTNESS IS MISSING Design depth Design is unclear and hard to comprehend Domain functionality is spread throughout the whole system Copy & Paste - Programming Expensive maintenance Duplicated code Many Refactorings Hard to test
  • 37. 19.01.2018 //// Seite 38WPS - Workplace Solutions GmbH GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM 119 classes from 4 „bounded contexts“ + 28 other classes in cylces WHAT WE SHOULD NOT BUILD CYCLES
  • 38. 19.01.2018 //// Seite 39WPS - Workplace Solutions GmbH WHAT WE SHOULD NOT BUILD 327 classe from 8 „bounded contexts“ need each other
  • 39. 19.01.2018 //// Seite 40WPS - Workplace Solutions GmbH
  • 40. 19.01.2018 //// Seite 41WPS - Workplace Solutions GmbH BROWNFIELD STRATEGIC DESIGN a tangled monolith with several domain models mixed with one another Untangling: 1. Identify the different subdomains in the monolith 2. Define the ubiquitous language for each identified subdomain 3. Examine entities whether decomposition or refactoring is possible. Test coverage! 4. If necessary, duplication of the entities and gradual expansion of the functionality that is not required. 5. Distribute the source code into bounded contexts 6. Start to separate the data of the bounded contexts in the database 7. Separate functional from technical code
  • 41. 19.01.2018 //// Seite 42WPS - Workplace Solutions GmbH DDD SEPARATES DOMAIN AND TECHNICAL CODE Domain Application Port & Adapter Gateway Transformation P & A G/T Web-Client Rich Client Web-Client Rich Client RDBMS NoSQL RDBMS NoSQL Everybody is telling us the same! • Domain-Driven Design (Evans 2004) • Hexagonal Architecture (Cockburn 1990/2005) • Onion/Clean Architecture (Jeffrey Palermo 2008 / Robert C. Martin 2012) • QUASAR = Quality Software Architecture (SD&M 2004) • T&M = Tools & Material Approach (Züllighoven 1990)
  • 42. 19.01.2018 //// Seite 45WPS - Workplace Solutions GmbH MEETUPS @DDDger
  • 43. 19.01.2018 //// Seite 46WPS - Workplace Solutions GmbH CONFERENCES Germanys first DDD conference
  • 44. Training Domain-Driven Design Advanced Level Module – german or english wps.de/ddd
  • 45. 19.01.2018 //// Seite 48WPS - Workplace Solutions GmbH Dr. Carola Lilienthal Geschäftsführerin cl@wps.de www.wps.de +49 40 229 499-0 +49 40 229 499-299 +49 170 184 77 11 Diplom-Informatikerin @cairolali a @cairolali cl@wps.de www.llsa.de Thanks for listening!