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

7 Years of Domain-Driven Design (DDD Foundations)

Vladik Khononov
February 05, 2020
560

7 Years of Domain-Driven Design (DDD Foundations)

Vladik Khononov

February 05, 2020
Tweet

Transcript

  1. vladikk doit-intl.com #DDDEU Aggregates everywhere!!! Creative Agency Advertiser Publisher Website

    Placement Ad Zone Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Campaign
  2. vladikk doit-intl.com #DDDEU The Bounded Context Creative Agency Advertiser Publisher

    Website Placement Ad Zone Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Audience
  3. vladikk doit-intl.com #DDDEU Smooth communication Strong grasp of the business

    domain Working software Aggressive time to market
  4. vladikk doit-intl.com #DDDEU Leads CRM Categorize Desk Desk Desk Sales

    Agents Sales Agents Sales Agents Clients’ Systems
  5. vladikk doit-intl.com #DDDEU Creative Agency Publisher Website Advertiser Ad Zone

    Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Audience Group Desk Qualification Assessment Organization Unit Assignment Rank Message On-site Activity Placement Visit Brand Marketing Lead CRM Lead Marketing Campaign CRM Campaign
  6. vladikk doit-intl.com #DDDEU Creative Agency Publisher Website Advertiser Ad Zone

    Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Audience Group Desk Qualification Assessment Organization Unit Assignment Rank Message On-site Activity Placement Visit Brand Marketing Lead CRM Lead Marketing Campaign CRM Campaign
  7. vladikk doit-intl.com #DDDEU Creative Agency Publisher Website Advertiser Ad Zone

    Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Audience Placement Visit Lead Campaign Marketing Group Desk Qualification Assessment Organization Unit Assignment Rank Message On-site Activity Brand Lead Campaign CRM
  8. vladikk doit-intl.com #DDDEU Aggregates will: • Protect transactional boundaries
 •

    Encompass business logic and invariants Domain Service / Application Layer Presentation Infrastructure
  9. vladikk doit-intl.com #DDDEU Aggregates will: • Protect transactional boundaries
 •

    Encompass business logic and invariants Domain Service / Application Layer Presentation Infrastructure Domain Service / Application Layer
  10. vladikk doit-intl.com #DDDEU Sales Commissions Reports Let’s try different percentages

    What if the percentage could be a function of a price? No, what if the percentage is a function of number of sales? No, no, the percentage will be a function both of number of sales and sale amount And another upgrade if there are more than Y sales per week! But we will upgrade the percentage if there are more than X sales per month!
  11. vladikk doit-intl.com #DDDEU Event Sourced Domain Model Service / Application

    Layer Presentation Infrastructure BIG BALL OF MUD
  12. vladikk doit-intl.com #DDDEU Active Record Service / Application Layer Presentation

    Infrastructure Transaction Script Service / Application Layer Presentation Infrastructure Event Crunchers Bonuses Ubiquitous Language
  13. vladikk doit-intl.com #DDDEU Event Sourced Domain Model Service / Application

    Layer Presentation Infrastructure Event Sourced Domain Model Service / Application Layer Presentation Infrastructure Event Crunchers Bonuses Ubiquitous Language
  14. vladikk doit-intl.com #DDDEU Ubiquitous Language Core Bounded Contexts Protect by


    decomposing to Identify Domains Domain Model Supporting Generic AR / TS Adopt Implement as
  15. vladikk doit-intl.com #DDDEU Marketing Ubiquitous Language Business goals achieved CRM

    Ubiquitous Language Production issues Long and painful refactoring Event Crunchers Ubiquitous Language Big ball of mud Bonuses Ubiquitous Language Refactored in time
  16. vladikk doit-intl.com #DDDEU Generic Domain Adopt / Buy Supporting Domain

    Active Record / Transaction Script Core Domain Domain Model / Event Sourcing
  17. vladikk doit-intl.com #DDDEU Generic Domain Adopt / Buy Supporting Domain

    Active Record / Transaction Script Core Domain Domain Model / Event Sourcing
  18. vladikk doit-intl.com #DDDEU Generic Domain Adopt / Buy Supporting Domain

    Active Record / Transaction Script Core Domain Domain Model / Event Sourcing
  19. vladikk doit-intl.com #DDDEU Creative Agency Advertiser Publisher Website Placement Ad

    Zone Ad Type Target Market Group Zone Type Funnel Contract Budget Unit Campaign Aggregates everywhere!!!
  20. vladikk doit-intl.com #DDDEU Ubiquitous Language Bounded Contexts Protect by
 decomposing

    to Design
 Implementation Core Supporting Generic Domain Model AR / TS Adopt Confirm w/
 Business Ubiquitous Language Everywhere!!!