Refactoring is an important concept which is really fun to learn and practice. Hence, I wanted to gamify it.
The idea is to IDENTIFY code smells and understand or justify WHY is something really a smell. Don’t justify a smell on the grounds of understandability, readability or flexibility. Go beyond ilities and ities !! Don’t state “Long method is a smell because it is not readable”, rather consider this as an opportunity to go beyond reasoning which is not measurable.
Before moving on, I will quickly mention the definition of refactoring which is gladly reused from refactoring.com
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a “refactoring”) does little, but a sequence of these transformations can produce a significant restructuring. Since each refactoring is small, it’s less likely to go wrong. The system is kept fully working after each refactoring, reducing the chances that a system can get seriously broken during the restructuring.