Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Strategic DDD

Strategic DDD

Jeff Gonzalez

March 17, 2022
Tweet

More Decks by Jeff Gonzalez

Other Decks in Technology

Transcript

  1. Why Domain-Driven Design (DDD)? • A domain model and ubiquitous

    language provide a mechanism for shared understanding • The whole team gains a useful mental model for discussion & refinement, which leads to greater understanding of our business • Domain experts can contribute to software design, leading to a better representation of how the business works • Since pure models can be late bound to implementation details, they are easier to test, which leads to more correct implementations
  2. Publishing Core Domain • Conceptualizing and proposing a book •

    Contracting with authors • Managing the book’s authorship and editorial process • Designing the book layout, including illustrations • Translating the book into other languages • Producing the physical print and/or electronic editions • Marketing the book • Selling the book to resellers and/or directly to consumers • Shipping a physical book to resellers and consumers
  3. Conway’s Law “Organizations which design systems ... are constrained to

    produce designs which are copies of the communication structures of these organizations.”
  4. Representational State Transfer (REST) • Uniform Interface • Client-Server •

    Stateless • Cacheable • Layered System • Code-on-demand (optional)
  5. Key Takeaways • Shared understanding is a non-negotiable goal •

    The structure of the organization contributes to the structure of the codebase • Architecture is not implementation details, like which database or framework you are using, instead it is the structure of your system