Domain-Driven Refactoring: A hands-on DDD guide to transforming monoliths into modular systems and microservices
Author: Alessandro Colla (Author), Alberto Acerbis (Author)
Publisher finelybook 出版社: Packt Publishing
Publication Date 出版日期: 2025-05-16
Language 语言: English
Print Length 页数: 324 pages
ISBN-10: 1835889107
ISBN-13: 9781835889107
Book 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 Description
As 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 for
This 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.
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
About the Author
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.