SlideShare uma empresa Scribd logo
1 de 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
What is a Problem Domain ?
In a Nutshell
Domain-DrivenDomain-Driven
Value.
Value.
How to get it ?
“A Big Ball of Mud is a haphazardly structured,
sprawling, sloppy, duct-tape-and baling-wire,
spaghetti-code jungle.” - Brian Foote and Joseph Yoder
“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
How Domain-Driven Design
Can Help ?
Model What Is Core.
Core Domain
Domain Model
Ubiquitous Language.
The Problem Space
The Solution Space
• 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.
@toni_e
steves

Mais conteúdo relacionado

Mais procurados

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: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"bincangteknologi
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroFabrício Rissetto
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignLalit Kale
 
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
 
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
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Agile India
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignAndriy Buday
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
Domain Driven Design in an Agile World
Domain Driven Design in an Agile WorldDomain Driven Design in an Agile World
Domain Driven Design in an Agile WorldLorraine Steyn
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureCan Pekdemir
 
Using DITA without becoming a Geek
Using DITA without becoming a GeekUsing DITA without becoming a Geek
Using DITA without becoming a GeekJang F.M. Graat
 
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentDomain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentBahram Maravandi
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignBradley Holt
 
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...SQALab
 

Mais procurados (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: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
DDD - What, why, how?
DDD - What, why, how?DDD - What, why, how?
DDD - What, why, how?
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
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)
 
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
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
 
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
 
Domain Driven Design in an Agile World
Domain Driven Design in an Agile WorldDomain Driven Design in an Agile World
Domain Driven Design in an Agile World
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal Architecture
 
Interactive DSML Design
Interactive DSML DesignInteractive DSML Design
Interactive DSML Design
 
Using DITA without becoming a Geek
Using DITA without becoming a GeekUsing DITA without becoming a Geek
Using DITA without becoming a Geek
 
Domain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software DevelopmentDomain Driven Design and Model Driven Software Development
Domain Driven Design and Model Driven Software Development
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
 

Destaque

Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführungdie.agilen GmbH
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Common ddd pitfalls
Common ddd pitfallsCommon ddd pitfalls
Common ddd pitfallsTom Janssens
 
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Meenakshi Devi
 
Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?ACA IT-Solutions
 
Applying Object Composition to Build Rich Domain Models
Applying Object Composition to Build Rich Domain ModelsApplying Object Composition to Build Rich Domain Models
Applying Object Composition to Build Rich Domain ModelsPostSharp Technologies
 
Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)LaDonna Coy
 
Simplifying your design with higher-order functions
Simplifying your design with higher-order functionsSimplifying your design with higher-order functions
Simplifying your design with higher-order functionsSamir Talwar
 
I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"Cyrille Martraire
 
Domain State model OOAD
Domain State model  OOADDomain State model  OOAD
Domain State model OOADRaghu Kumar
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event ProcessingKarol Grzegorczyk
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDeclan Whelan
 
Why Domain-Driven Design Matters
Why Domain-Driven Design MattersWhy Domain-Driven Design Matters
Why Domain-Driven Design MattersMathias Verraes
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design IntroductionTung Nguyen Thanh
 

Destaque (20)

Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführung
 
Introduction to-ddd
Introduction to-dddIntroduction to-ddd
Introduction to-ddd
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Common ddd pitfalls
Common ddd pitfallsCommon ddd pitfalls
Common ddd pitfalls
 
jTransfo lightning talk
jTransfo lightning talkjTransfo lightning talk
jTransfo lightning talk
 
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
Mapping Problem Domain Objects to Object-Persistence Formats(OOAD)
 
Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?Modularity and Domain Driven Design; a killer combination?
Modularity and Domain Driven Design; a killer combination?
 
Applying Object Composition to Build Rich Domain Models
Applying Object Composition to Build Rich Domain ModelsApplying Object Composition to Build Rich Domain Models
Applying Object Composition to Build Rich Domain Models
 
From legacy to DDD
From legacy to DDDFrom legacy to DDD
From legacy to DDD
 
Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)Success by Challenging Assumptions (Part I)
Success by Challenging Assumptions (Part I)
 
Simplifying your design with higher-order functions
Simplifying your design with higher-order functionsSimplifying your design with higher-order functions
Simplifying your design with higher-order functions
 
I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"
 
Domain State model OOAD
Domain State model  OOADDomain State model  OOAD
Domain State model OOAD
 
Parallel Complex Event Processing
Parallel Complex Event ProcessingParallel Complex Event Processing
Parallel Complex Event Processing
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with Rails
 
Domain object model
Domain object modelDomain object model
Domain object model
 
Why Domain-Driven Design Matters
Why Domain-Driven Design MattersWhy Domain-Driven Design Matters
Why Domain-Driven Design Matters
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 

Semelhante a Domain driven design in a nutshell

Collaborative Software Development With Distributed Teams
Collaborative Software Development With Distributed TeamsCollaborative Software Development With Distributed Teams
Collaborative Software Development With Distributed TeamsTim Penhey
 
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
 
Os Alrubaie Ruby
Os Alrubaie RubyOs Alrubaie Ruby
Os Alrubaie Rubyoscon2007
 
MX: Princesses, Executives, and Unicorns
MX: Princesses, Executives, and UnicornsMX: Princesses, Executives, and Unicorns
MX: Princesses, Executives, and UnicornsDaniel Romano
 
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.Deeson
 
Domain Driven Design at UK Parliament
Domain Driven Design at UK ParliamentDomain Driven Design at UK Parliament
Domain Driven Design at UK ParliamentUK Parliament Data
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developerenteritos
 
Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesMike Clement
 
Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Social Media Lab
 
Wanted: Best Practices for Collaborative Translation
Wanted: Best Practices for Collaborative TranslationWanted: Best Practices for Collaborative Translation
Wanted: Best Practices for Collaborative TranslationGrupo Inmigra i+d
 
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...David Jones
 
Responsive Design Talk @ Toronto Dev Derby March
Responsive Design Talk @ Toronto Dev Derby MarchResponsive Design Talk @ Toronto Dev Derby March
Responsive Design Talk @ Toronto Dev Derby Marchthemystic_ca
 
97 Things Every Programmer Should Know
97 Things Every Programmer Should Know97 Things Every Programmer Should Know
97 Things Every Programmer Should KnowKevlin Henney
 
Technology for language centers
Technology for language centersTechnology for language centers
Technology for language centersNeny Isharyanti
 

Semelhante a Domain driven design in a nutshell (20)

Collaborative Software Development With Distributed Teams
Collaborative Software Development With Distributed TeamsCollaborative Software Development With Distributed Teams
Collaborative Software Development With Distributed Teams
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
 
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
 
IT CLA 2013
IT CLA 2013IT CLA 2013
IT CLA 2013
 
Os Alrubaie Ruby
Os Alrubaie RubyOs Alrubaie Ruby
Os Alrubaie Ruby
 
MX: Princesses, Executives, and Unicorns
MX: Princesses, Executives, and UnicornsMX: Princesses, Executives, and Unicorns
MX: Princesses, Executives, and Unicorns
 
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.
Conversational Interfaces. Andrew Larking and Ronald Ashri at Museum Tech 2017.
 
Domain Driven Design at UK Parliament
Domain Driven Design at UK ParliamentDomain Driven Design at UK Parliament
Domain Driven Design at UK Parliament
 
Os Long
Os LongOs Long
Os Long
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
DDD knowledge sharing
DDD knowledge sharingDDD knowledge sharing
DDD knowledge sharing
 
Johnsen Elearning To Eleading
Johnsen Elearning To EleadingJohnsen Elearning To Eleading
Johnsen Elearning To Eleading
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
Software Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code GamesSoftware Craftsmanship and Agile Code Games
Software Craftsmanship and Agile Code Games
 
Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design
 
Wanted: Best Practices for Collaborative Translation
Wanted: Best Practices for Collaborative TranslationWanted: Best Practices for Collaborative Translation
Wanted: Best Practices for Collaborative Translation
 
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...
Creating the Adaptive Enterprise: Capability and Delivery from Change Convers...
 
Responsive Design Talk @ Toronto Dev Derby March
Responsive Design Talk @ Toronto Dev Derby MarchResponsive Design Talk @ Toronto Dev Derby March
Responsive Design Talk @ Toronto Dev Derby March
 
97 Things Every Programmer Should Know
97 Things Every Programmer Should Know97 Things Every Programmer Should Know
97 Things Every Programmer Should Know
 
Technology for language centers
Technology for language centersTechnology for language centers
Technology for language centers
 

Mais de Toni Esteves

A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...Toni Esteves
 
Logica fuzzy Conceitos e Aplicações
Logica fuzzy   Conceitos e AplicaçõesLogica fuzzy   Conceitos e Aplicações
Logica fuzzy Conceitos e AplicaçõesToni Esteves
 
Domain Specific Languages - A superficial approach
Domain Specific Languages - A superficial approachDomain Specific Languages - A superficial approach
Domain Specific Languages - A superficial approachToni Esteves
 
Inteligencia Artificial - Linguistica
Inteligencia Artificial - LinguisticaInteligencia Artificial - Linguistica
Inteligencia Artificial - LinguisticaToni Esteves
 
Model driven development
Model driven developmentModel driven development
Model driven developmentToni Esteves
 

Mais de Toni Esteves (6)

eSCM-CL
eSCM-CLeSCM-CL
eSCM-CL
 
A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...
 
Logica fuzzy Conceitos e Aplicações
Logica fuzzy   Conceitos e AplicaçõesLogica fuzzy   Conceitos e Aplicações
Logica fuzzy Conceitos e Aplicações
 
Domain Specific Languages - A superficial approach
Domain Specific Languages - A superficial approachDomain Specific Languages - A superficial approach
Domain Specific Languages - A superficial approach
 
Inteligencia Artificial - Linguistica
Inteligencia Artificial - LinguisticaInteligencia Artificial - Linguistica
Inteligencia Artificial - Linguistica
 
Model driven development
Model driven developmentModel driven development
Model driven development
 

Último

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Domain driven design in a nutshell

  • 1. “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
  • 2. What is a Problem Domain ?
  • 6. “A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and baling-wire, spaghetti-code jungle.” - Brian Foote and Joseph Yoder
  • 7.
  • 8. “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
  • 9.
  • 11. Model What Is Core.
  • 12.
  • 13.
  • 14.
  • 17.
  • 18.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 28. • 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.

Notas do Editor

  1. ESCREVER O SOFTWARE É FÁCIL, DESCULPE POR ESCREVER GREENFIELD SOFTWARES É FÁCIL. DESENVOLVIMENTO DE SOFTWARE É UM CRIATIVO E PROCESSO ADAPTATIVO. QUANDO SE TRATA DE MODIFICAR CÓDIGO ESCRITO POR OUTROS DESENVOLVEDORES OU CÓDIGO QUE VOCÊ ESCREVEU HÁ SEIS MESES, PODE SER UM POUCO CHATO NO MELHOR DOS CASOS E NO PIOR UM PESADELO. O SOFTWARE FUNCIONA MAS VOCÊ NÃO CERTEZA EXATAMENTE COMO. ELE CONTÉM TODOS OS QUADROS DIREITA, PADRÕES E FOI CRIADO USANDO UMA ABORDAGEM ÁGIL, AINDA INTRODUZINDO NOVOS RECURSOS NA BASE DE CÓDIGO É MAIS DIFÍCIL DO QUE DEVERIA SER. MESMO OS ESPECIALISTAS DE NEGÓCIOS SÃO DE NENHUM USO QUE O CÓDIGO NÃO TEM QUALQUER SEMELHANÇA COM A LINGUAGEM QUE ELES USAM. TRABALHO EM TAIS SISTEMAS SE TORNA UMA TAREFA DEIXANDO COLABORADORES FRUSTRADOS E DESPROVIDOS DE QUAISQUER PRAZER CODIFICAÇÃO. ANTES QUE VOCÊ POSSA DESENVOLVER UMA SOLUÇÃO, VOCÊ DEVE ENTENDER O PROBLEMA. A NECESSIDADE DA EQUIPE DE DESENVOLVIMENTO PARA VALOR DOMÍNIO DE CONHECIMENTO, TANTO COMO CONHECIMENTOS TÉCNICOS ESPECIALIZADOS SÃO VITAL TER UMA VISÃO MAIS PROFUNDA DO DOMÍNIO DO PROBLEMA. PARTES CENTRAIS DO SEU PRODUTO QUE SÃO SUFICIENTEMENTE COMPLEXAS OU FREQÜENTEMENTE MUDANÇA DEVE SER BASEADA EM UM MODELO. UM MODELO QUE ESTÁ EM SINERGIA COM O DOMÍNIO DO PROBLEMA PERMITIRÁ QUE O SEU SOFTWARE A SER ADAPTÁVEL E COMPREENDIDO POR OUTROS DESENVOLVEDORES E ESPECIALISTAS EM NEGÓCIOS.
  2. Um domínio de problema se refere à área disciplinar para a qual você estiver construindo SOFTWARE. Peritos no dominio do PROBLEMA trabalham em conjunto com a equipe de desenvolvimento para se concentrar nas áreas do domínio que sejam úteis para ser capaz de produzir software valioso. Por exemplo, quando a escrita de software PARA A INDÚSTRIA DE SAÚDE PARA GRAVAR o tratamento do paciente, NÃO É importante aprender a se tornar um médico. O que é importante entender é a terminologia da indústria da saúde, como os departamentos de vista diferentes pacientes e
  3. O DESIGN É ALGO QUE DEVE SER PENSADO, REFLETIDO E REMOLDADO, PARA QUE FINALMENTE ELE TENHA UMA PERFEITA ADEQUAÇÃO E FORNEÇA UMA SOLUÇÃO VIÁVEL AO QUE VOCÊ DESEJA. Domain-Driven Design (DDD) é uma filosofia de desenvolvimento definida POR ERIC EVANS EM SEU Domain-Driven Design obra seminal: LUTAR CONTRA COMPLEXIDADE NO CORAÇÃO DE SOFTWARE (Addison-Wesley Professional, 2003). DDD é uma abordagem de desenvolvimento de software projetada para GERIR complexo e GRANDE ESCALA produtos de software. No seu coração Centra-se na criação de uma linguagem COMPARTILHADA conhecido como a linguagem ubíqua forma eficiente e eficaz descrever um domínio de problema
  4. É algo impacto que permite uma maior compreensão do domínio do problema (para o negócio e a equipe de desenvolvimento) e uma comunicação mais eficaz. Estes valores-chave têm um enorme sobre projetos que eles colocam muito maior importância na análise e compreensão sobre estruturas técnicas e metodologias, o que acaba por fazer produtos de software bem sucedida.
  5. A Focus On Collaboration A Focus On Language A Focus On Building A Model For Core Domains A Focus On Context A Focus On Organization Em sintese o DDD aborda a resolucao de problemas do mapeamento de projetos de software para um domínio não trivial você deve primeiro entender as dificuldades de criar e manter software. De longe, o padrão de design mais popular software de arquitetura para aplicações de negócios é o Big Ball of Mud (BBoM) padrão. BBoM, tal como definido por Brian Foote e Joseph Yoder.
  6. A falta de foco em uma linguagem comum e conhecimento dos resultados domínio do problema em uma base de código que funciona, mas não revela a intenção do negócio. Isso faz com que bases de código muito difícil ler e manter como traduções entre o modelo de análise e linguagem de negócios para o código implementação e conceitos técnicos podem ser caros. Código sem uma ligação a um modelo de análise que a empresa entende rapidamente em conformidade com a BBoM padrão o que significa que nenhum insight domínio pode, eventualmente, ser descoberto pela equipe de desenvolvimento como base código é focada conceitos negócio não entende
  7. Continuando a persistir com um padrão de espaguete-como arquitetura pode levar a um ritmo lento de aprimoramento do recurso. Quando novas versões do produto são lançados, muitas vezes eles podem ser buggy devido à confusão ininteligível da base de código que os desenvolvedores tem que lidar com eles. Com o tempo, a equipe de desenvolvimento cada vez mais queixas sobre a dificuldade de trabalhar em uma bagunça. embora recurso é adicionado ao projeto, a velocidade não pode ser aumentado para um nível que satisfaça os negócios. No final, agravada pela situação, o pedido de reescrever a aplicação temida é concedido. Sem o devido cuidado e consideração, no entanto, mesmo o projeto greenfield pode cair aves do mesmo questões que criaram o BBoM originais. Essa experiência toda pode ser frustrante para o negócio que viu um grande retorno sobre o investimento em termos de recursos e velocidade de entrega no início, mas ao longo do tempo, mesmo com i investimento adicional
  8. Temos normalmente encontrados que a versão iniciais de sistemas que se assemelha BBoM foram rápidas para produzir um sucesso e bem-arredondado, mas porque houve pouco foco na necessidade do negócio, melhorias posteriores são problemáticos. A base de código não tem a necessária sinergia com o comportamento do negócio para fazer a mudança administrável. Este sentimento é resumida
  9. O desafio de escrever E REFORÇAR O SOFTWARE para sistemas complexos e de larga escala vai muito além de quaisquer considerações técnicas. Na verdade, para domínios complexos , os desafios técnicos poderiam ser muito simples. É O apreço pela intenção do negócio que permitirá a equipe de desenvolvimento para identificar e investir seu tempo na parte mais importante do sistema . Como o negócio evoluira, que por sua vez ditará a evolucao do software; Ele precisa ser adaptavel, investir na qualidade do codigo e nas áreas-chave do sistema irá ajudar a mudar isso com o negócio. Se as areas fundamenstais do softawre nao estao em perfeita sinergia com o dominio do negocio entao seu software provavelmente aporederá se tornando uma bola de lama, e consequetemente resultando SOFTWARE DIFÍCIL manter. O Domain-Driven Aborda os desafios do gerenciamento e concepção de sistemas complexos grandes por primeiramente concentrar os esforços eno alinhamento do dominios computacionais com as capacidades de negócios e, segundo Revelando as peças principais de um sistema e assim entender onde os desenvolvedores devem colocar mais esforço. O alinhamento é feito por quebrar domínios de problemas grandes em MENORES subdomínios mais focado e dentro deles MENORES contextos de negócios . As partes centrais do sistema são encontrados por destilação do domínio do problema e entao revelar a razão fundamental por que o software está sendo produzido eo que será chave para seu sucesso
  10. Uma vez que as áreas-chave do software são descobertas as equipes de desenvolvimento podem alavancar padroes táticos do Domain-Driven Design para construir um modelo conceitual, conhecido como um modelo de domínio, Este modelo não é um modelo de vida real, mas abstração para satisfazer as exigências dos casos de uso, embora mantendo o REGRAS e a lógica do domínio do negócio.
  11. Pegue o modelo de domínio de uma aplicação de e-commerce. Há muitos componentes diferentes que formam o grande sistema global. Algumas peças podem ser encontrados em qualquer sistema de e-commerce, mas alguns vão ser exclusivo para sua empresa. Estas peças irão definir o software e serão as razões fundamentais que você está construindo em vez de comprar.
  12. A destilação de conhecimento após sessões com especialistas de domínio deve revelar o que é único e importante sobre o aplicativo que você está prestes a criar. Você pode separar os subdomínios no núcleo, genérico, e apoiar domínios.
  13. Pegue o modelo de domínio de uma aplicação de e-commerce. Há muitos componentes diferentes que formam o grande sistema global. Algumas peças podem ser encontrados em qualquer sistema de e-commerce, mas alguns vão ser exclusivo para sua empresa. Estas peças irão definir o software e serão as razões fundamentais que você está construindo em vez de comprar.
  14. Para entender o que é central para o produto que a sua empresa está a pedir-lhe para se desenvolver, você precisa perguntar a si mesmo algumas perguntas. Quais são as partes do produto que irá torná-lo um sucesso? Por que essas partes do sistema são importantes? E por que não podem ser comprados na prateleira? Em outras palavras, o que torna o sistema algo que vale a pena construir? As peças principais do sistema representam a vantagem competitiva fundamental que sua empresa pode ganhar com a entrega deste software. O núcleo nem sempre é óbvio.
  15. O DOMÍNIO representa a área problema que você está trabalhando dentro. É a realidade FIRME DA SITUAÇÃO. O modelo de domínio POR OUTRO LADO é uma abstração do domínio do problema, expressa como uma implementação de código que representa uma visao, não a realidade, do problema. A utilidade do modelo de domínio vem em sua capacidade de representar LÓGICA no domínio do problema para resolver problemas de negócios. O modelo é construído a partir da colaboração entre a equipe de desenvolvimento e especialistas em negócios. O modelo contém apenas o que é relevante para a resolução de problemas no contexto da aplicação que está sendo criado. Ela precisa evoluir constantemente com a empresa para manter-se útil e VÁLIDO. SÓ EXISTE PARA AJUDAR EUA resolver problemas, precisa ter CLAREZA E estar livre de complexidades técnicas.
  16. Um modelo de domínio não é um modelo de vida real é um sistema de abstrações sobre a realidade, uma interpretação que inclui apenas os aspectos do domínio do problema que são predominantes para a resolução de casos específicos de uso de negócios. Um modelo de domínio deve excluir quaisquer detalhes irrelevantes de um domínio que não serve para resolver problemas. Modelos de Domínio conter apenas o que é relevante. Um modelo de domínio necessita de ser constantemente refinados, a fim de ser continuamente útil. Um modelo de domínio é sempre apenas temporalmente útil para uma determinada iteração e um conjunto de casos de uso. Casos de uso futuro, ou muda para o negócio pode tornar o modelo inútil.
  17. COMMUNICATION! THE COLLABORATION BETWEEN THE BUSINESS EXPERT AND THE DEVELOPMENT TEAM IS AN ESSENTIAL ASPECT OF DDD AND ONE THAT IS CRUCIAL TO THE SUCCESS OF A PRODUCT UNDER DEVELOPMENT. HOWEVER, IT IS IMPORTANT TO SEEK OUT THOSE WHO ARE EXPERTS IN THE DOMAIN YOU ARE WORKING IN AND WHO CAN OFFER YOU DEEPER INSIGHT INTO THE PROBLEM AREA. DDD REFERS TO THESE SUBJECT MATTER EXPERTS AS DOMAIN EXPERTS. THE DOMAIN EXPERTS ARE THE PEOPLE WHO DEEPLY UNDERSTAND THE BUSINESS DOMAIN FROM ITS POLICIES AND WORK FLOWS, TO ITS NUISANCES AND IDIOSYNCRASIES. THEY ARE THE EXPERTS WITHIN THE BUSINESS OF THE DOMAIN; THEY WILL RARELY, IF EVER, HAVE THE TITLE DOMAIN EXPERT. INSTEAD, LOOK FOR THE PRODUCT OWNERS, USERS, AND ANYONE WHO HAS A GREAT GRASP AND UNDERSTANDING FOR THE DOMAIN YOU ARE WORKING IN REGARDLESS OF TITLE.
  18. SER CAPAZ DE COMUNICAR DE FORMA EFICAZ É A HABILIDADE MAIS IMPORTANTE, SER CAPAZ DE RESOLVER PROBLEMAS. O DESENVOLVEDOR NÃO QUER CÓDIGO, ELE DEVE RESOLVER PROBLEMAS E POR ISSO É VITAL PARA FALAR COM O NEGÓCIO QUE VOCÊ ESTÁ TRABALHANDO EM UMA LINGUAGEM SEM AMBIGUIDADE OU NECESSIDADE DE TRADUÇÃO. REMOVENDO BARREIRAS LINGUÍSTICAS PROFISSIONAIS DO SECTOR E DA EQUIPE DE DESENVOLVIMENTO É LIVRE PARA COLABORAR EXPLORAR E EXPERIMENTAR COM DESENHOS PARA UM MODELO ÚTIL. IMPLEMENTAÇÕES TÉCNICAS PODEM SER EXPRESSAS UTILIZANDO AS LINGUAGEM UBÍQUA MESMO E QUAISQUER INSIGHTS PROJETO PODE ENTÃO SER ALIMENTADO DE VOLTA PARA ESPECIALISTAS DE DOMÍNIO PARA VALIDAÇÃO SEM NECESSIDADE DE TRADUÇÃO E PERDA DE SENTIDO. O VERDADEIRO VALOR DE SEGUIR A FILOSOFIA DOMAIN-DRIVEN DESIGN ESTÁ NA COLABORAÇÃO DE DESENVOLVEDORES E ESPECIALISTAS DE DOMÍNIO PARA PRODUZIR UMA MELHOR COMPREENSÃO DO DOMÍNIO. O CÓDIGO QUE É ESCRITA É APENAS UM ARTEFATO DESSE PROCESSO, EMBORA IMPORTANTE. PARA ALCANÇAR UMA MELHOR EQUIPES COMPREENSÃO PRECISA SE COMUNICAR DE FORMA EFICAZ. É A CRIAÇÃO DA LINGUAGEM UBÍQUA QUE PERMITE A COMPREENSÃO MAIS PROFUNDA QUE VAI VIVER APÓS O CÓDIGO SER REESCRITO E SUBSTITUÍDO.
  19. Um especialista de domínio, irá trabalhar com você, a fim de produzir um modelo útil que pode satisfazer as necessidades de uma das partes interessadas.
  20. Historicamente escrever softawe sempre foi um processo custoso, iterações demoradas, requisistos que eram levantados erronemente.
  21. A partilha de informação permite que especialistas em negócios para contribuir para o design de software e fornece uma visão mais profunda e compreensão do domínio para a equipe de desenvolvimento . Depois de um período de tempo, desenvolvedores e especialistas em negócios vai descobrir a informação relevante para construir um modelo inicial do domínio do problema . Este modelo inicial é posta à prova , usando cenários de domínio : bens problemas do domínio de validar a sua utilidade . Modelagem em voz alta, usando os termos e linguagem do modelo , também pode ajudar a validar projetos iniciais.
  22. DDD sugere um método mais colaborativa de capturar os requisitos do sistema e entender o fluxo de trabalho existente. A ênfase é colocada em toda a equipe , com especialistas em negócios e arquitetos (contanto que eles código ), com discussões em torno do espaço do problema . As discussões podem incluir qualquer documentação ou código legado que está relacionado com o sistema em questão . A idéia por trás das sessões de trituração colaborativa de conhecimento é para os desenvolvedores, testadores , analistas de negócios , arquitetos e especialistas em negócios para trabalhar como uma equipe unificada . Isso permite que os desenvolvedores e testadores para aprender sobre o significado por trás de termos de domínio e entender a lógica complexa na área do problema . Ele também permite que especialistas em negócios para experimentar as técnicas de modelagem empregadas. Com o entendimento de modelagem, especialistas em negócios si será capaz de modelar e validar projetos com a equipe de desenvolvimento.
  23. Soluçao !!! A transição não é linear e sim distribuida, Os requisitos nao partem do UML para a codificação mas estes caminham lado a lado.