Implementing Domain-Driven Design as a Pragmatic Developer
summary
Concrete claim: pragmatic .NET/C# code shows how to layer a solution, implement Aggregates by ID (no navigation links), enforce invariants via constructors and business methods, and keep aggregates small. Examples include an Issue aggregate modeled after GitHub, a reusable Specification pattern for queries, repository interfaces in the domain layer, DTOs that never expose entities, and a rule that a user can hold at most three active assignments. ABP framework evolves from ASP.NET Boilerplate and demonstrates these practices in real code.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 3:19DDD layering principles
- 8:19Core DDD principles
- 10:50Designing aggregates
- 17:09Enforcing business rules
- 19:22Repositories and persistence
- 22:22Specification pattern
- 25:34Domain services
- 27:42Application services
- 29:09DTO best practices
- 33:08Single domain layers
- 34:10DDD mistakes
- 36:42Resources and closing
related talks
41mDomain-Driven Design: Hidden Lessons from the Big Blue Book
43mArchitecture antipatterns and how to beat them 1/2
39mDomain-Driven Design: Hidden Lessons from the Big Blue Book
58mDDD really matters!
42mDomain Driven Design - So Your Code Speaks Plain Language
29m20 Years of Domain-Driven Design: What I’ve Learned About DDD
48mPitching DDD to the management
49mDomain-Driven Design & Team Topologies For Product-led Organizations
