Posted by Ian Whitney on December 27, 2014

I spend a lot of time thinking about how to improve the design of my code. But, despite all that thinking, my initial coding attempts always have significant design problems. Yours probably do too. There are a lot of programmers out there better than me, but I don’t think any of them are happy with their first drafts.

In writing there’s the a maxim “Good Writing is Rewriting” and it’s true in programming as well. If you want your code design to improve, then you have to refactor. And that refactoring shouldn’t be haphazard code changes; you should be taking small, deliberate steps that you know will move your code towards a better design.

I want to get better at this, and the best way to get better is to do it. Over and over.

This site will present simple coding problems and illustrate the path from my initial, un-refactored design to my final, (and hopefully) better designed solution. And to show off the power of focused refactoring, I’m going to use the refactoring steps outlined by Martin Fowler in his book Refactoring.