by
4.27 of 5 stars
Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get nearl... read full description

reviews

Oct 30, 2010
Steven rated it: 4 of 5 stars
I've found this book helpful in framing my thinking about testing a large code base.

It bears some similarity to "Design Patterns," both in its structure and in that for an experienced developer it's light on the "I never knew I could do that," and heavy on the, "I've made that kind of change before but until now hadn't thought of it as a distinct concept that could be reasoned about in isolation."

So for me, the value was less in teaching me new t More...
Nov 27, 2011
Pascal rated it: 5 of 5 stars
Michael Feathers defines legacy code as “Code without tests”. Based on that definition, do you work on legacy code? Probably almost every programmer gets confronted with parts of code not covered by Unit Tests. Do you want better techniques to work with code that doesn’t have tests?

If you take up the challenge of reading and applying this book, you’ll learn several specific techniques that you can employ to take this code, make the absolute minimum number of modifications to get the c More...
Jan 29, 2010
Ash rated it: 5 of 5 stars
I've heard this called "genius" and it is. Legacy code is defined as untested code. Changing it involves various strategies to safely and incrementally get tests in place. The "seam" model of thinking, where you identify points you can influence behaviour without changing the code, is extremely powerful. Feathers gives several types of seam, and many techniques for exploiting them.

The main value of Working Effectively with Legacy Code is low risk ways to deal More...
3 comments like (2 people liked it)
Dec 31, 2010
David rated it: 4 of 5 stars
This is a must read for any person involved in development on a legacy system.

The book is quite a dense collection of interwoven refactoring patterns and techniques for improving the quality of legacy code. As the author quite clearly states at the start that he considers legacy code to be 'code without tests', most of these are actually techniques for getting untested code into automated test harnesses to allow future development to proceed with that safety net in place.

Some More...
Aug 26, 2011
Andrew rated it: 5 of 5 stars
Working with legacy code on the face of it looks and feels less exciting than working on greenfield projects. The truth is that legacy is the place where you get to hone your craft and sharpen your tools.
This book contains the foremost example of tools you didn't know you would need but maybe more importantly, it shows you where and how to use the tools you already have to make the world a better place and yourself a better developer.
Mar 19, 2011
James rated it: 5 of 5 stars
One of the most pertinent and useful books on programming I've ever read. Maintaining legacy code is a large part of my job and the techniques described here make it much easier and safer to make necessary changes. Getting classes into test harnesses that were previously uncovered is a rewarding experience. I highly recommend this book to anyone who has to refactor code on a regular basis.
Jan 09, 2012
Matt rated it: 4 of 5 stars
This book may be a little dated from the code and tools aspect, but the methods are just as valid today as they ever were. Prior to this book I had refactored plenty of code successfully, but not without challenges. I think the approaches outlined here will help me quite a bit in my future efforts.
Mar 28, 2011
Jess rated it: 5 of 5 stars
I love this book. Every organisation has code that has evolved faster than it should have, with missing tests, odd corners and even weird constructs that appear to make no sense. This book gives you a solid set of ways to improve, understand and make testable, an existing code base
Jun 23, 2011
Dmitry rated it: 4 of 5 stars
Very inspiring, especially the last chapter :) It is unbelievable how many practices from this book can be applied to almost any programming language (not only familiar Java, .NET, C/C++).
Good read for anyone who works with old, monstrous, inflexible systems.
Feb 03, 2009
Avdi rated it: 5 of 5 stars
This is without question one of the essential books on my software development bookshelf. The dirty secret of software is that 80% or more if it is hacking your way through thick tangles of legacy code. This book is your survival guide in that jungle.
Oct 11, 2011
Stefan rated it: 4 of 5 stars
I just re-read this great Michael's book after few years of working solely on a quite legacy code base.
I must admit that I still won't be able to list most of techniques applied here, all related to getting legacy code under unit tests.
However, most of refactoring techniques are more obvious to me today that after the first read.

Hence the conclusion that Michael's 'Working Effectively with Legacy Code' isn't for a junior / novice coder, but for someone who already hit enough More...
Jan 15, 2012
Hristo rated it: 5 of 5 stars
One of the books that makes you a better programmer. I can't count the number of messes I have fixed using things I learned from this book. Thinking of it, I should probably read it again.
Dec 26, 2008
Tom rated it: 5 of 5 stars
This is a great book and an absolute must-read for all software developers. Feather's definition of legacy code is code without unit tests, and the book provides a plethora of techniques for adding tests to your code. I will definitely be referring back to this book time and time again.
Oct 26, 2011
Jeffswensen rated it: 5 of 5 stars
Fantastic. Provides clear, specific approaches to working with old, intimidating spaghetti mess.
Dec 22, 2010
Michael rated it: 4 of 5 stars
A must read for anything seriously thinking about working on programs longer than a page.
Feb 09, 2010
Chris rated it: 5 of 5 stars
Excellent guide to getting a handle on code gone wild
Jan 02, 2012
Xavier rated it: 3 of 5 stars
Solid content but I can't list anything new I learned. Reinforced the notion that coupling/dependencies are evil.
Aug 22, 2011
Kiril rated it: 5 of 5 stars
Good book, but should be called something like 'Refactoring to testability'.
Oct 11, 2010
Mmdms added it
Booked out by Rochana Attale 10/12/10
Aug 11, 2008
Ryan rated it: 5 of 5 stars
Authoritative look at how to slice and dice messy code to get it under control. It's hard work, especially to do it right, but Feathers delivers well-thought-through principles and rudiments to take those steaming piles of untested but working and mission-critical code and get them under a reliable test harness so it can be safely refactored.
Jun 01, 2011
Bernard rated it: 5 of 5 stars
You can read any chapter of this book and learn techniques that help you maintain older code in a safer and more effective way. I've used it to help teach a number of teams how to wrap existing code with unit tests. Can't recommend this enough.
Jan 12, 2008
Spencer rated it: 4 of 5 stars
This book had some good tips and techniques for working with legacy code, but the author missed the most obvious (and best) way to deal with having to work with legacy code: trick someone else into doing it.
Nov 14, 2011
Mark rated it: 5 of 5 stars
Essential reading for anyone who works with legacy code (i.e., code not under test). Feathers provides very pragmatic examples that could help pretty much anyone, no matter how monstrous the code-base.
Nov 22, 2011
Chuck rated it: 5 of 5 stars
I learn something new every time I open this book. This has been an ongoing reference for me in my career and will be for a long time to come.
Sep 08, 2011
Craig rated it: 5 of 5 stars
Read this for the second time, this time as part of a book club for work. Got just as much or more out of it the second time.
Feb 11, 2008
obakasan rated it: 4 of 5 stars
Interesting suggestions. We all could use more unit tests, I suppose.
Jun 10, 2011
Irwan added it

Last read p. 108
Feb 11, 2012
Bernard marked it as to-read
Feb 11, 2012
Jason marked it as to-read
Feb 11, 2012
Seyhun marked it as to-read