Skip to content

Latest commit

 

History

History
28 lines (16 loc) · 2.01 KB

README.asc

File metadata and controls

28 lines (16 loc) · 2.01 KB

refactoring-groovy

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."

— Martin Fowler
Refactoring: Improving the Design of Existing Code
Preamble

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.

Goal

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).

How to Use

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