Author: William C. Wake & Kevin Rutherford
Publisher: Addison Wesley, 2009
Aimed at: Ruby programmers
Pros: Practical approach
Cons: Doesn't use automated methods or tools
Reviewed by: Ian Elliot
Refactoring is a fairly obvious procedure - you have some code and you make it better. It's the observation that changing code is easy that leads on to agile methodology of which refactoring is a key part.
This book aims to teach the obvious using Ruby and a lot of examples backed up by simple statements of principle. It starts off with a small ad hoc program to draw a graph and then works its way through what is wrong with the code and how to put it right. There is lots of discussion of what makes bad code and how to recognise it.
Then the book moves off into a categorisation of each type of problem and the typical steps that you would take in refactoring. There are also lots of exercises to test that you are developing the required skills and the good news is that the answers are given at the end of the book.
What is missing is any really deep discussion of what makes Ruby special in this context - perhaps it isn't and this is just a book about refactoring that happens to use Ruby as its example language. There is also no coverage of tools that you might use to make refactoring easier and the reason for this is apparent form the list given at the end of tools that are in the early stages of development. Perhaps this is a sign that the book is just a little to early in the life cycle of Ruby and the authors should return to the topic when the tools are more mature.
Overall this is a book packed with common sense and this makes it an optional extra to your Ruby library.