Home

Awesome

Support this and all my katas via Patreon

Parrot Refactoring Kata

Can you spot any code smells in this code? I'll give you a clue - a spot of Pol(l)ymorphism should improve matters!

Refactor this code, take small steps, run the tests often. See how small and beautiful and polymorphic you can make it.

I made a video explaining this kata, and videos with worked solutions:

There is also a Guided Learning Hour using this exercise: Everyday Design Improvements in OO Code

Acknowlegements

This code is heavily inspired by one of the examples in Martin Fowler's book "Refactoring". It's a classic, and if it's not on your bookshelf already I suggest you treat yourself to a copy!