Y Hacker News Books
Buy on Amazon4.5 out of 5, 739 ratings on Amazon

#122 of 2,629 all-time

Working Effectively with Legacy Code

Michael Feathers

41 people recommended it in 14 threads, 2011–2023.

2 commenters pushed back on it — worth reading the threads.

What people on Hacker News said

fsloth
Well, if the original code is of the worst kind of a mess, Feather's circa 2004 collection of methods to make it more understandable but functionally the same work just fine for the first part of the refactoring.

on HN, 2017

TeeDub
Feathers (the author) methodologically chose to copy / inspire some of his examples from code he's worked with as a mentor / developer (some of it from his time @ Thought Works w/ Beck, et al.)

on HN, 2012

TeeDub
The book is similar to Fowler's Refactoring in that it provides some core thought processes / ideology and then a long list of heuristics and techniques for revising/updating legacy code.

on HN, 2012

TeeDub
I find his definition of "legacy code" as any software without automated testing to be challenging and insightful, especially since it indicts most code written ever. ;)

on HN, 2012

dpflan
Working Effectively with Legacy Code (Dealing with an ugly codebase)

on HN, 2023

dpflan
Refactoring Improve the design of the existing codebase (Making changes safely without breaking the code)

on HN, 2023

And on Amazon

Simply supurb, a tour de force

The vast majority of software texts are about greenfield development: creating a new application from nothing at all. But the vast majority of software work involves existing code: adding features, finding bugs, or refactoring code that someone else wrote. This book is a supurb first step in fixing that imbalance. This is not a theoretical work. For example, Feathers does not present a grand ontology of legacy systems. Not is this book heavy on methodology. Instead Feathers describes techniques --- lots of techniques, roughly 50 --- for working with legacy code. The techniques are organized by the problems they address. …

David Bridgeland · verified purchase · 5/5

Valuable, practical advice.

A more accurate title for this book would have been "Unit Testing and Refactoring is How To Work Effectively with Legacy Code" The book operates entirely from that premise, and only spends a little time trying to sell you on the concept. If you're still struggling with that debate, this book may rub you the wrong way. However, I found it to be intensely practical and found the author repeatedly speaking about scenarios that I run into quite often. I would describe myself as someone who finds the whole fascination with design patterns a little optimistic and certainly hype-laden. Useful to be familiar with, but nothing to preach about. …

Brian Deacon · verified purchase · 5/5

It's ok, all should read at least once

My perspective is as a mid-thirties adult male who went straight from college to a job I'm still at 11+ years later, working on a large, sprawling, legacy software suite with almost no unit test coverage. Our software is the culmination of 40+ devs and contractors who came and went over the product's 20+ year lifespan. There was never an architect. There was never much oversight, pretty much pick whatever stack you wanted to build a certain feature as long as the resulting UI was vaguely consistent. …

MinnesotaDrew · verified purchase · 4/5

Where it comes up