Working Effectively with Legacy Code product image

Working Effectively with Legacy Code

Nerd Approved:
(5/5)
Review by Joshua Morris on
View on AmazonAs an Amazon Associate, I earn from qualifying purchases at no additional cost to you.

Review

Working Effectively with Legacy Code is the book I read when I inherited a codebase that had no tests and couldn't be changed safely. Feathers' techniques—sprouting methods, characterization tests, dependency breaking—gave me a systematic approach to adding tests to untested code. The chapter on dependency breaking showed me how to extract dependencies so I could test code in isolation, and the section on characterization tests helped me understand what legacy code actually does before I tried to change it. The book is practical: every technique includes code examples showing the before and after, and Feathers explains when each technique works and when it doesn't. My only critique is that some examples are Java-focused, but the principles apply to any language. I've used this book to add tests to three different legacy systems, and each time it gave me the confidence to make changes without breaking things. Essential reading for anyone working with code they didn't write.

✓ Pros

  • Systematic approach to adding tests to untested code
  • Practical techniques: sprouting methods, characterization tests, dependency breaking
  • Clear before/after examples showing when each technique works
  • Gives confidence to make changes to legacy code without breaking it

✗ Cons

  • Java-focused examples may not apply to all languages
  • Some techniques require significant refactoring effort
  • Assumes you have time to add tests—may not apply to all situations

Specifications

Pages464
PublisherPrentice Hall
LanguageEnglish
Isbn13978-0131177055
Publication DateOctober 2, 2004

Related Products

97 Things Every Programmer Should Know: Collective Wisdom from the Experts product image

97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Nerd Approved:
(4/5)

Edited by Kevlin Henney, a curated set of timeless, page-length lessons from industry legends. Each item is a standalone insight you can read in five minutes.

Timeless, page-length lessons from industry legends. Perfect for busy developers—read one item in five minutes, learn something useful, put it down. Read full review.

As an Amazon Associate, I earn from qualifying purchases at no additional cost to you.
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations product image

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

Nerd Approved:
(5/5)

Research-backed field guide that ties lean software delivery habits to measurable business outcomes, unpacking the DORA metrics, cultural foundations, and continuous delivery capabilities that separated top performers in the Accelerate State of DevOps reports.

Still my go-to reference when aligning execs around DORA metrics and the cultural work that makes continuous delivery stick. Read full review.

As an Amazon Associate, I earn from qualifying purchases at no additional cost to you.
Algorithms (4th Edition) product image

Algorithms (4th Edition)

Nerd Approved:
(5/5)

The leading algorithms textbook with clear Java implementations and full coverage of sorting, searching, graph processing, and string processing.

Leading algorithms textbook with clear Java implementations and an unmatched companion ecosystem of exercises, visualizations, and lectures. Read full review.

As an Amazon Associate, I earn from qualifying purchases at no additional cost to you.