Patterns, principles, and practices of domain-driven design

Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C# This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applicati...

Descripción completa

Detalles Bibliográficos
Otros Autores: Millett, Scott, author (author), Tune, Nick, author
Formato: Libro electrónico
Idioma:Inglés
Publicado: Indianapolis, Indiana : Wrox 2015.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009628938806719
Tabla de Contenidos:
  • Patterns, Principles, and Practices of Domain-Driven Design; ABOUT THE AUTHOR; CREDITS; ACKNOWLEDGMENTS; CONTENTS; INTRODUCTION; PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN-DRIVEN DESIGN; CHAPTER 1: WHAT IS DOMAIN-DRIVEN DESIGN?; The Challenges of Creating Software for Complex Problem Domains; Code Created Without a Common Language; A Lack of Organization; The Ball of Mud Pattern Stifles Development; A Lack of Focus on the Problem Domain; How the Patterns of Domain-Driven Design Manage Complexity; The Strategic Patterns of DDD; Distilling the Problem Domain to Reveal What Is Important
  • Creating a Model to Solve Domain ProblemsUsing a Shared Language to Enable Modeling Collaboration; Isolate Models from Ambiguity and Corruption; Understanding the Relationships between Contexts; The Tactical Patterns of DDD; The Problem Space and the Solution Space; The Practices and Principles of Domain-Driven Design; Focusing on the Core Domain; Learning through Collaboration; Creating Models through Exploration and Experimentation; Communication; Understanding the Applicability of a Model; Constantly Evolving the Model; Popular Misconceptions of Domain-Driven Design
  • Tactical Patterns Are Key to DDDDDD Is a Framework; DDD Is a Silver Bullet; The Salient Points; CHAPTER 2: DISTILLING THE PROBLEM DOMAIN; Knowledge Crunching and Collaboration; Reaching a Shared Understanding through a Shared Language; The Importance of Domain Knowledge; The Role of Business Analysts; An Ongoing Process; Gaining Domain Insight with Domain Experts; Domain Experts vs Stakeholders; Deeper Understanding for the Business; Engaging with Your Domain Experts; Patterns for Effective Knowledge Crunching; Focus on the Most Interesting Conversations; Start from the Use Cases
  • Ask Powerful QuestionsSketching; Class Responsibility Collaboration Cards; Defer the Naming of Concepts in Your Model; Behavior-Driven Development; Rapid Prototyping; Look at Paper-Based Systems; Look For Existing Models; Understanding Intent; Event Storming; Impact Mapping; Understanding the Business Model; Deliberate Discovery; Model Exploration Whirlpool; The Salient Points; CHAPTER 3: FOCUSING ON THE CORE DOMAIN; Why Decompose a Problem Domain?; How to Capture the Essence of the Problem; Look Beyond Requirements; Capture the Domain Vision for a Shared Understanding of What Is Core
  • How to Focus on the Core ProblemDistilling a Problem Domain; Core Domains; Treat Your Core Domain as a Product Rather than a Project; Generic Domains; Supporting Domains; How Subdomains Shape a Solution; Not All Parts of a System will be Well Designed; Focus on Clean Boundaries over Perfect Models; The Core Domain Doesn't Always Have to Be Perfect the First Time; Build Subdomains for Replacement Rather than Reuse; What if You Have no Core Domain?; The Salient Points; CHAPTER 4: MODEL-DRIVEN DESIGN; What Is a Domain Model?; The Domain versus the Domain Model; The Analysis Model; The Code Model
  • The Code Model Is the Primary Expression of the Domain Model