Published May 29, 2017

The Domain in Domain Driven Design

Explore the essence of Domain Driven Design as Joe Zack and Michael Outlaw dissect entities, value objects, and domain services, navigate the choices in developer laptops and headphones, and grapple with the trade-offs between quick fixes and technical debt in programming.
Episode Highlights
Coding Blocks logo

Popular Clips

Episode Highlights

  • Entity Objects

    Entity objects in Domain Driven Design (DDD) are crucial for managing complex business needs. explains that entities are objects with unique identities, often represented by an ID, and are mutable, meaning their state can change over time 1. notes that entity objects should not have an equal operator, as their identity is defined by their ID rather than their attributes 2. This distinction helps maintain clarity in systems where entities and value objects interact.

       

    Value Objects

    Value objects in DDD are immutable and focus on attributes rather than identity. illustrates this with the example of a box, where properties like size and weight define the object, not a unique identifier 3. highlights the preference for value objects over entities when possible, as they simplify logic by encapsulating attributes in a single object 4. This approach reduces complexity by avoiding multiple conditional statements and focusing on the object's properties.

       

    Domain Services

    Domain services in DDD handle operations that don't fit neatly within a single entity, often interacting with multiple entities. explains that these services are stateless, focusing on business behaviors rather than system needs 5. adds that domain services are crucial for tasks like tax calculation, where complex logic is encapsulated in a separate service to maintain clarity and testability 6. This separation of concerns is key to managing enterprise-level applications efficiently.

Related Episodes