
Domain-Driven Refactoring
A hands-on DDD guide to transforming monoliths into modular systems and microservices
Packt Publishing
Published on 16. May 2025
Book
Paperback/Softback
322 pages
978-1-83588-910-7 (ISBN)
Description
Apply domain-driven design practices effortlessly to evolve your system into a modern, robust application while mastering refactoring techniques that drive real-world results
Key Features
Learn how to modernize your system to make it as frictionless as possible
Gain hands-on experience in applying strategic and tactical patterns through real-world examples
Transform your architecture with practical guidance for seamless refactoring
Purchase of the print or Kindle book includes a free PDF eBook
Book DescriptionAs software development continues to grow, mastering domain-driven design (DDD) will help transform your approach to complex systems. Filled with actionable insights and practical examples, this book is your essential guide to implementing DDD principles, covering its key concepts and practical applications in modern architecture.
Alessandro, an eCommerce specialist and DDD expert with 30 years of experience, and Alberto, a dedicated backend developer, tap into their extensive expertise to help you refactor your monolith into a modular structure, whether it be evolving into microservices or enhancing a maintainable monolith, resulting in a system that adapts to changing business needs and non-functional requirements.
You'll explore vital DDD patterns like strategic design with bounded contexts and ubiquitous language, improving communication between technical and domain experts. The chapters take you through modeling techniques to manage complexity and increase flexibility, while also addressing microservices integration, including inter-service communication, transaction management, and data strategies.
By the end of this book, you'll be able to decompose a monolith and refine its architecture for adaptability, all while ensuring business logic remains central to your software design and development.What you will learn
Find out how to recognize the boundaries of your system's components
Apply strategic patterns such as bounded contexts and ubiquitous language
Master tactical patterns for building aggregates and entities
Discover principal refactoring patterns and learn how to implement them
Identify pain points in a complex code base and address them
Explore event-driven architectures for component decoupling
Get skilled at writing tests that validate and maintain architectural integrity
Who this book is forThis book is ideal for software developers, architects, and team leads looking to modernize legacy applications using domain-driven design principles. If you're a backend developer or software engineer looking to enhance your understanding of DDD, this guide will elevate your skills in designing robust systems. Team leads and architects will find valuable insights for guiding their teams through the transition from monoliths to microservices. Familiarity with C# is a must, as the book provides practical examples in this language.
Key Features
Learn how to modernize your system to make it as frictionless as possible
Gain hands-on experience in applying strategic and tactical patterns through real-world examples
Transform your architecture with practical guidance for seamless refactoring
Purchase of the print or Kindle book includes a free PDF eBook
Book DescriptionAs software development continues to grow, mastering domain-driven design (DDD) will help transform your approach to complex systems. Filled with actionable insights and practical examples, this book is your essential guide to implementing DDD principles, covering its key concepts and practical applications in modern architecture.
Alessandro, an eCommerce specialist and DDD expert with 30 years of experience, and Alberto, a dedicated backend developer, tap into their extensive expertise to help you refactor your monolith into a modular structure, whether it be evolving into microservices or enhancing a maintainable monolith, resulting in a system that adapts to changing business needs and non-functional requirements.
You'll explore vital DDD patterns like strategic design with bounded contexts and ubiquitous language, improving communication between technical and domain experts. The chapters take you through modeling techniques to manage complexity and increase flexibility, while also addressing microservices integration, including inter-service communication, transaction management, and data strategies.
By the end of this book, you'll be able to decompose a monolith and refine its architecture for adaptability, all while ensuring business logic remains central to your software design and development.What you will learn
Find out how to recognize the boundaries of your system's components
Apply strategic patterns such as bounded contexts and ubiquitous language
Master tactical patterns for building aggregates and entities
Discover principal refactoring patterns and learn how to implement them
Identify pain points in a complex code base and address them
Explore event-driven architectures for component decoupling
Get skilled at writing tests that validate and maintain architectural integrity
Who this book is forThis book is ideal for software developers, architects, and team leads looking to modernize legacy applications using domain-driven design principles. If you're a backend developer or software engineer looking to enhance your understanding of DDD, this guide will elevate your skills in designing robust systems. Team leads and architects will find valuable insights for guiding their teams through the transition from monoliths to microservices. Familiarity with C# is a must, as the book provides practical examples in this language.
More details
Language
English
Place of publication
Birmingham
United Kingdom
Dimensions
Height: 235 mm
Width: 191 mm
Thickness: 18 mm
Weight
607 gr
ISBN-13
978-1-83588-910-7 (9781835889107)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Persons
Alessandro Colla is an eCommerce specialist a C# programmer and a Domain Driven Design expert. Over the course of now thirty years in IT, he has developed software for management systems, and ERPs, from scratch for a wide variety of fields and helped teams in their learning and improvement. He is also the co-author of "Cronache di Domain-Driven Design" and co-founder of "DDD Open" and "Polenta and Deploy". Alberto Acerbis is basically an eternal student because the subject matter is endless. He has always defined himself as a backend developer, but he does not disdain poking around on the other side of the code either. He likes to think that 'writing' software is mainly about solving business problems and providing value to the customer, and in this, he finds DDD patterns a great help. I am a co-founder of the DDD Open and Polenta and Deploy communities.
Content
Table of Contents
Evolution of Domain-Driven Design
Understanding Complexity: Problem and Solution Space
Strategic Patterns
Tactical Patterns
Introducing Refactoring Principles
Transitioning from Chaos
Integrating Events with CQRS
Refactoring the Database
DDD Patterns for Continuous Integration and Continuous Refactoring
When and Why You Should Transition to a Microservices Architecture
Dealing with Events and Their Evolution
Orchestrating Complexity: Advanced Approaches to Business Processes
Evolution of Domain-Driven Design
Understanding Complexity: Problem and Solution Space
Strategic Patterns
Tactical Patterns
Introducing Refactoring Principles
Transitioning from Chaos
Integrating Events with CQRS
Refactoring the Database
DDD Patterns for Continuous Integration and Continuous Refactoring
When and Why You Should Transition to a Microservices Architecture
Dealing with Events and Their Evolution
Orchestrating Complexity: Advanced Approaches to Business Processes