Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

Share

DDD: lessons learned

Download to read offline

A short talk on the key lessons I've learned on DDD over the last 4 years. Presented at DDDEU 2018.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

DDD: lessons learned

  1. 1. DDD Lessons Domain modelling lessons that I wish I’d learned earlier
  2. 2. Who am I? Lead Developer and Solutions Architect Writing PHP web apps professionally for 12 yrs Recovered Architecture Astronaut A little DDD and EventSourcing obsessed (I will talk for hours) Organiser of PHPDublin @barryosull barry@tercet.io http://barryosull.com
  3. 3. Lesson 1 Recognising Domain Experts
  4. 4. Recognising Domain Experts ? ? ? ? ? ? ? Solution Expert Domain Expert
  5. 5. Lesson 2 The UI is not a proxy for a Domain Expert
  6. 6. The UI is not a proxy for a domain expert Developer How does “X” work?
  7. 7. Lesson 3 When interviewing Domain Experts, refine the constraints they define
  8. 8. When Interviewing Domain Experts, refine defined constraints ? ? ? ? ? ? ? Domain ExpertDeveloper What happens if X? Well, then it should . . ... ...
  9. 9. Lesson 4 Sub Domains and Bounded Contexts are VERY different things
  10. 10. Domains and SubDomains are composable Domain: Running a Travel Agency We want to create and sell trips to customers SubDomain: TripBuilding Building trips is expensive SubDomain: Searching Searching across all the services (flight/hotel/car/etc..) is time consuming and error prone SubDomain: Booking Booking trips is time consuming SubDomain: Finance We don't know how effective we are at turning quotes into bookings SubSubDomain: Tracking We don't keep track of what we've quoted SubSubDomain: Reporting We have no way of aggregating this information
  11. 11. Bounded Contexts are independent Trip Building IAM CRM Reporting Searching
  12. 12. Lesson 5 Domains and contexts do not always align
  13. 13. Unaligned sub domains and bounded contexts Payroll Accounting Payroll Accounts Manager HR Reporting Accounting Payroll
  14. 14. Other Lessons that I don’t have time to explore Ohh lightning talks, there’s never enough time
  15. 15. Other lessons 6: Temporal constraints are far more costly to implement than Value constraints 7. Constant refactoring is key to understanding a domain 8: Hold event storming sessions, even if you're not event sourcing 9: Applying DDD works and it makes you a better developer 10: If it's not your core domain, don't build it yourself, use an existing solution
  16. 16. Thank you Any questions? (Please leave feedback on the meetup page!)
  • ramiljoaquin1

    Jul. 21, 2018
  • sstoyanov7

    Feb. 4, 2018
  • MateuszSip

    Feb. 2, 2018

A short talk on the key lessons I've learned on DDD over the last 4 years. Presented at DDDEU 2018.

Views

Total views

519

On Slideshare

0

From embeds

0

Number of embeds

55

Actions

Downloads

3

Shares

0

Comments

0

Likes

3

×