REVIEW - Refactoring Workbook


Refactoring Workbook


William C. Wake


Addison-Wesley Professional (2003)




Francis Glassborow


December 2003



I like the idea behind this book, to provide an understanding of refactoring by example and exercises and I think many programmers could benefit from such a study but the book has too small a target readership. The problem is that many of the examples come from XP (Extreme Programming) sources. That is irritating, but more to the point is that they are Java ones. I think that programmers from other languages (such as C, C++ and C#) will be constantly distracted from the main thread by the examples and exercises being in a language that is subtly different to that with which they are familiar.

I completely understand that it is very difficult to provide multi-language coverage in a practical book but there are ways of addressing this. Many of the examples/exercises could have been at function rather than class level and thereby have a far greater degree of commonality. I think that it could be possible to provide alternative examples in other languages even if those were mainly in an electronically readable form (CD or website).

On the positive side the author's classification of code smells is useful and helps the programmer to focus on particular aspects of code that may lead to either simple, in place, changes or to refactoring.

If you program in Java working through this book will almost certainly improve your code. If you are not reasonably fluent with Java I think you should be encouraging the publisher and author to revisit the issue with an alternative edition. I think the loss of value for those who mainly program in another language is too great to justify the cover cost.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.