Insights and outlooks on software development


On Working Effectively with Legacy Code by Michael Feathers - a Micro Book Review

Friday, May 1, 2009 by Thomas L

feathers_legacycodeSince I like the Micro Book Review format, I thought I should write one as well. My reading of it has been a bit interrupted, since I've been reading it for at least 4 months with other books in between, but I've recently finished reading the book Working Effectively with Legacy Code by Michael Feathers.

What this book is about

The book is on how to transform terrible legacy code into something a bit more testable and thus maintainable. The book is divided into three parts (making it a triplex book à la Fowler's DuplexBook): one introductory part on Feathers' theories behind code change; one part which deals with specific use cases, e.g. "I can't get this class into a test harness" or "My application is all API calls"; and the last part, which is a catalog of dependency breaking techniquies (i.e. refactorings), like "Sprout method", "Extract interface" or "Pull down dependency".

What I've learned from this book

  • The concept of a Seam, which is a part in the code where we actually can introduce dependency breaking techniques. I hadn't thought about that aspect of test-driving code.
  • It started me thinking about testing non-object oriented code.

What I didn't like

  • Since Feathers has to be thorough in explaining his trail of thoughts and actions in the middle part, it gets quote long and wordy. I ended up skimming through some parts of this.

Should you buy this book?

Yes, this is a 5/5. Someone said "sprint 2 is the first maintenance sprint", which is a bit aggressive, but correct to some degree. If you have the techniques in your hands and mind, you can create code with extensibility points along the way, and thus working in an Agile fashion.

Who should buy the book?

Developers and Architects will reap great benefits from this book.

Filed under , , , having  

0 kommentarer: