Software-Technology

Refactoring: Improving the Design of Existing Code

by Martin Folwer
Copyright (c) 1999

I picked up this book at the wrong time. The book was so successful that a second edition is due out on November 30, 2018 (less than two weeks from now).

On the other hand, I picked up this book at the right time. At work, my project is in the midst of a refactoring project. I am in the middle of changing PHP code from modular functions to object-orientation. The aim of this transition is to enhance the scalability of the project and ease the writing of documentation. I generally like to peer “beneath the surface” of skills that I acquire; this book has indeed enlightened my mind to details of what is going on in my code rewrite.

Some of this book is incredibly tedious. It details how to change code from one format to another. It’s work that I let my fingers do more of – and my brain less of! But the book also frames how to do this work and why it is so important. It ties together intellectual “loose ends” which might not be tied together by the programmer who simply dives “head first” into the project.

Fowler writes in tandem with a research seminar at the University of Illinois who have pioneered object-oriented techniques in Smalltalk and then Java and C++. They tackle the concepts of refactoring more than how to tackle the specifics of coding in a language. I prefer their theoretical approach to more common approaches drenched in technical lingo and programming tools. This book was worth its time.