Sustainable Software Architecture: Analyze and Reduce Technical Debt
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
Carola Lilienthal is managing director of WPS - Workplace Solutions GmbH and is responsible for the department of software architecture. Since 2003, Dr. Carola Lilienthal has been analyzing over 300 architectures in Java, TypeScript, C #, C ++, ABAP and PHP, and advising development teams on how to improve the sustainability of their software systems. She is particularly interested in the education of software architects, which is why she regularly passes on her knowledge at conferences, in articles and training courses.