Today's programmers don't develop software systems from scratch.
Instead, they spend their time fixing, extending, modifying, and
enhancing existing software. Legacy systems often turn into an unwieldy
mess that becomes increasingly difficult to modify, and with
architecture that continually accumulates technical debt.
Carola Lilienthal has analyzed more than 300 software systems written in
Java, C#, C++, PHP, ABAP, and TypeScript and, together with her teams,
has successfully refactored them. This book condenses her experience
with monolithic systems, architectural and design patterns, layered
architectures, domain-driven design, and microservices.
With more than 200 color images from real-world systems, good and
sub-optimal sample solutions are presented in a comprehensible and
thorough way, while recommendations and suggestions based on practical
projects allow the reader to directly apply the author's knowledge to
their daily work.
"Throughout the book, Dr. Lilienthal has provided sound advice on
diagnosing, understanding, disentangling, and ultimately preventing the
issues that make software systems brittle and subject to breakage. In
addition to the technical examples that you'd expect in a book on
software architecture, she takes the time to dive into the behavioral
and human aspects that impact sustainability and, in my experience, are
inextricably linked to the health of a codebase. She also expertly zooms
out, exploring architecture concepts such as domains and layers, and
then zooms in to the class level where your typical developer works
day-to-day. This holistic approach is crucial for implementing
long-lasting change."
From the Foreword of Andrea Goulet
CEO, Corgibytes,
Founder, Legacy Code Rocks