"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
Refactoring: Improving the Design of Existing Code
Hi everybody. Hi Doctor Nick! I started this project because I recently started reading Martin Fowler’s Refactoring: Improving the Design of Existing Code. Funny: this book is 12 years young; yet, I still see unfactored code (meaningless names, order of magnitude 100 line long methods etc.) in production today.
A developer I admire recently posted on Twitter that he felt the best way to learn a programming language or concepts was to code, code and code. My goal in this project is to internalize the catalog of refactoring patterns in Fowler’s book while learning a language (Groovy), a build tool (Gradle) and a testing framework (Spock).
Each chapter in the book has (1) a folder under the project root directory and (2) a branch. Each Chapter Folder (1) is the root of a Gradle
project; each Chapter Branch encodes the process of refactoring that Chapter Folder in its commit log, that is each commit on a Chapter Branch should be some form of refactoring. Of course, there have been some commits to this README and for gitignores and such so there are some intermittent non-refactor commits. I have tried to indicate those in the commit summary. Also, I recommend expanding all commit messages because some contain verbose explanations of the what and why of the refactor represented in that commit.
Cheers,
Adam