Published Sep 3, 2019

Episode 8: Interview Eric Evans

Eric Evans delves into the transformative power of domain-specific languages and domain-driven design, emphasizing the significance of collaboration and communication in complex software projects, and providing insightful guidance on developing flexible models and bridging gaps in understanding.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Building Blocks

    explains the foundational elements of domain-driven design, emphasizing the importance of entities and value objects in creating robust models. He distinguishes between entities, which focus on identity and continuity, and value objects, which are immutable and lack identity, using color as a canonical example 1. These building blocks, along with repositories and factories, form a strategic design framework that guides the trajectory of a project 2.

    If I tell you it's a value object, you can assume all kinds of things. You can assume that this object will not change, that it represents some information about something rather than the continuity of an identity.

    ---

    This strategic approach helps avoid pitfalls and ensures the success of domain-driven design projects.

       

    Design Essentials

    Domain-driven design (DDD) is not merely a programming technique but a philosophy that integrates various aspects of software development. highlights that DDD begins with understanding the domain and building a shared model, which is then used to shape the software 3. This approach prioritizes domain knowledge over technical solutions, setting it apart from traditional object-oriented design 4.

    What it says is that you have to start from an understanding of the domain and focus there first and build knowledge and refine that knowledge and develop a model that is your shared understanding of that domain.

    ---

    By focusing on domain functionality and understanding, DDD aims to create software that truly reflects business needs.

Related Episodes