Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

DDD Introduction

49 vues

Publié le

Domain Driven Design is a system of Modeling and Design that helps projects to align complex software systems with business needs

Publié dans : Logiciels
  • Login to see the comments

  • Soyez le premier à aimer ceci

DDD Introduction

  1. 1. Lorraine Steyn @lor_krs Alain King @alainkingza #DDDCapeTownwww.krs.co.za
  2. 2. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn.
  3. 3. Conway's law: Organizations which design systems ... are constrained to produce designs which are communication structures of these organizations. Organization
  4. 4. U D Bounded Contexts Discovery… Where are users located? Which is the Core domain? Look at organizational structure
  5. 5. Ubiquitous Language Discovery… U D
  6. 6. Team per Bounded Context Software helps identify better organization Shared Kernel Micro-Services
  7. 7. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. Safety to take risks Respect each other (internal and external to the team) Connection Prevent dysfunctional behaviour Emotional Safety
  8. 8. DC SKU POD RIFD Cage Blind Receiving Fulfilment Back Order FIFO ATD WAREHOUSE: Landed Cost Cross Docking Picking List Shrinkage Buffer Stock Ubiquitous Language
  9. 9. In source code, documentation, tests, as well as used by business 1. Natural language 2. Domain terms (not IT terms) 3. Ubiquitous Language to resolve all differences Ubiquitous Language Language that we use everywhere
  10. 10. Old Code: DDD Code: “year” is a Value Object
  11. 11. Cynefin Categorizing Complexity Disorder requires further breakdown of breakdown of the problem Better to treat a problem as more complex rather than less • Over simplification • Entrained thinking Dave Snowden & Mary Boone
  12. 12. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. Identify Entities (nouns), but don’t go running off to make classes! Look for verbs – what are the system actions Look for time sequences: we do this, then that… Adjectives are a hint that there may be more edge cases Challenge each discovery Ask the “dumb questions”
  13. 13. Modelling with the right people in the room Limited time (2-4 hours) Unlimited space Domain event Actor Command External system View
  14. 14. DDD Concepts Bounded Contexts Ubiquitous Language Value Objects Entities Aggregate Root Patterns: Port and Adaptor, Anti-Corruption Layer, CQRS etc Don’t let the DDD Terminology be a barrier!
  15. 15. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. WHY?
  16. 16. Like Agile, DDD is about people, collaboration, and business value
  17. 17. Workshops Introduction to DDD and Event Storming Ubiquitous Language, Bounded Contexts, Entities, Aggregates and Value Objects, Event Storming Intro and Case Study. Advanced DDD Exercises with Entities, Aggregates and Value Objects, Advance Bounded Contexts and exercise, Patterns: Onion, Hexagon, CQRS and Event Sourcing Implementing DDD in Code Turning your Model into code (C# exercise), and advanced modelling Case Study.
  18. 18. Thank you Join InDDDaba - Domain Driven Design Cape Town Meetup

×