Working Effectively with Legacy Code

Working Effectively with Legacy Code cover
Good Books rating 4.23
Buy online
Technical
  • ID: 10583
  • Added: 2026-01-26
  • Updated: 2026-01-27
  • ISBN: 9780132931755
  • Publisher: Prentice Hall Professional
  • Published: 2004-09-22
  • Formats: 1
  • Reviews: 3

Working Effectively with Legacy Code offers practical techniques for managing and enhancing large, untested legacy code bases. Michael Feathers provides start-to-finish strategies to make your code more performant, reliable, and manageable. The book includes a catalog of dependency-breaking techniques and examples in various programming languages, making it a valuable resource for developers, technical managers, and testers. This book is drawn from Michael Feathers' renowned seminars and includes material he has used to help hundreds of professionals bring their legacy systems under control. It covers topics such as understanding software change, writing tests, and accurately identifying where changes need to be made. Whether you're working with object-oriented or non-object-oriented systems, this book provides the tools you need to work more effectively with legacy code.

Reviews
Dev.to · Hector · 2026-01-07
recommended 4.50

This book is recommended for experienced and advanced engineers, offering advice that is useful across different programming languages. It's a valuable resource for those looking to enhance their skills in dealing with legacy code.

Hector recommends this book for experienced and advanced engineers, emphasizing that the advice given is useful regardless of the programming languages used. The book provides valuable insights and techniques that can be applied broadly, making it a worthwhile read for those looking to improve their skills in handling legacy code. Hector appreciates the book's comprehensive approach and its relevance to a wide range of programming scenarios.


Quick quotes

    I recommend this book for experienced and advanced engineers.

    The advice given can be useful regardless of the programming languages used.

    It's a valuable resource for those looking to enhance their skills in dealing with legacy code.

Alpha's Manifesto · 2018-09-01
insightful 4.20

The book focuses on coping with poor design and coding rather than promoting good design. It provides clear explanations and practical advice for dealing with the results of poor design.

Alpha's Manifesto notes that this book is not about promoting good design but rather about coping with the results of poor design and coding. The reviewer appreciates the clear explanations and practical advice provided, which help developers deal with the challenges of legacy code. The book's focus on practical solutions makes it a valuable resource for those working with legacy systems. The reviewer finds the book's approach to be both insightful and useful in real-world scenarios.


Quick quotes

    He clearly explains how this book is not about good design, but rather, to cope correctly with the results of poor design and coding.

    It's about dealing with the challenges of legacy code in a practical and effective manner.

    The book's focus on practical solutions makes it a valuable resource for those working with legacy systems.

Florian Hopf's Blog · Florian Hopf · 2018-02-23
practical 4.00

The book offers a structured approach to dealing with legacy code, providing valuable recipes and methods. It's a practical guide that helps developers think systematically about legacy code challenges.

Florian Hopf highlights that the most valuable aspect of this book is its structured approach to legacy code. It's not just about providing recipes but also about fostering a way of thinking that can be applied to various legacy code scenarios. The practical advice and methods discussed make it a useful resource for developers looking to improve their handling of legacy systems. Hopf appreciates the book's focus on practical solutions and its ability to help developers navigate the complexities of legacy code effectively.


Quick quotes

    The most valuable aspect of the book is that it provides a very structured way of thinking about legacy code.

    Not only by providing recipes but also about fostering a way of thinking that can be applied to various legacy code scenarios.

    The practical advice and methods discussed make it a useful resource for developers looking to improve their handling of legacy systems.