Domain-Driven Refactoring
summary
Shows how to refactor a realistic .NET loyalty app step‑by‑step: break a giant handler into named methods, extract an IOfferValueCalculator and inject it, replace a primitive enum with Steve Smith’s SmartEnum to host expiration logic, and push assignment behavior into the Member entity so the model gains methods instead of just data. Uses Mediator-style handlers, ReSharper refactorings, constructor DI, and inner strategy classes to untangle anemic models and make the domain testable and encapsulated. extract methods into named steps OfferValueCalculator via interface replace enum with SmartEnum-based strategy move assign logic into Member entity
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:53What is Domain-Driven Design
- 3:59Domain Model Basics
- 6:07Refactoring Legacy Code
- 8:15Current Domain Model Analysis
- 12:06Live Code Refactoring Start
- 16:18Compose Method Refactoring
- 21:20Encapsulating External Calls
- 27:00Moving Behavior to Domain
- 31:14Primitive Obsession and Smart Enums
- 38:03Strategy Pattern for Expiration Types
- 42:16Assigning Offers to Members
- 44:49Next Steps in Refactoring
- 45:10Q&A and Resources
related talks
01h 02mDomain-Driven Refactoring
49mDomain-Driven Refactoring
58mImplementing Domain Driven Design as a Pragmatic .NET Developer
47mRefactoring Live Session Toward Tactical Domain-Driven Design
59mDomain-Driven Design - Where Rubber Meets the Road
50mThe Anatomy of Business Conditions
48mDomain-Driven Design tactically and practically
51mDomain - Driven Transformation
