reviews
Oct 30, 2010
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...
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
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...
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
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...
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
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...
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
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.
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
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
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
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
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.
Good read for anyone who works with old, monstrous, inflexible systems.
Oct 11, 2011
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...
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
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
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
Fantastic. Provides clear, specific approaches to working with old, intimidating spaghetti mess.
Dec 22, 2010
A must read for anything seriously thinking about working on programs longer than a page.
Jan 02, 2012
Solid content but I can't list anything new I learned. Reinforced the notion that coupling/dependencies are evil.
Aug 22, 2011
Good book, but should be called something like 'Refactoring to testability'.
Aug 11, 2008
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
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
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
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
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
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, 2012
Feb 11, 2012
Feb 11, 2012
