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

  • Model Concepts

    Eric Evans, the author of Domain-Driven Design, emphasizes the importance of understanding what a model truly represents in software development. He describes a model as a set of related concepts that solve a problem, highlighting the distinction between the model itself and its various expressions, such as UML diagrams or code. Evans argues that well-crafted UML diagrams can distill key concepts and focus attention on important aspects, but they should not be overly detailed as this diminishes their utility 1. He also notes that successful domain models provide flexibility and maintainability, yet achieving this requires basic skills and a common language among team members 2.

    A model is really a set of related concepts that can be applied to solve some problem.

    ---

    Evans stresses the need for teams to find a model that truly works for their project, as failing to do so can lead to muddled concepts and ineffective solutions 2.

       

    Code & UML

    The relationship between code, UML, and other model expressions is a critical aspect of domain-driven design. Evans explains that while code is often seen as the most important expression of a model, it is not the model itself. He believes that a well-written codebase should reflect the conceptual model but emphasizes that UML diagrams can effectively communicate important ideas when they are not overly detailed 1. Evans introduces the concept of ubiquitous language, which integrates the language of the domain into every aspect of the project, from conversations to code 3.

    Your goal in modeling is really the evolution of a better language to talk about your domain.

    ---

    This approach ensures that the model is consistently represented across the project, enhancing communication and understanding among team members 3.

Related Episodes