A refactoring exercise to practice identifying code smells and applying polymorphism to improve object-oriented design.
Parrot Refactoring Kata is a programming exercise designed to teach developers how to refactor object-oriented code by applying polymorphism. It presents a problematic code snippet involving parrot behavior and challenges participants to improve its design through incremental, test-driven changes. The goal is to transform a codebase with clear smells into a cleaner, more maintainable structure.
Software developers and students learning object-oriented programming, refactoring techniques, or test-driven development, particularly those seeking hands-on practice with polymorphism and design improvements.
It provides a focused, practical environment to practice refactoring skills on real-world-inspired code, supported by video explanations and multi-language examples. Unlike generic tutorials, it offers a concrete problem with measurable improvements in code quality.
Kata to learn about Polymorphism
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Specifically focuses on replacing conditional logic with polymorphic structures, as emphasized in the README's clue about 'Pol(l)ymorphism' to improve code clarity.
Encourages incremental refactoring with frequent test runs, promoting safe, small steps that ensure correctness, aligning with the kata's philosophy.
Includes video explanations and worked solutions in C#, Java, and Python, providing multi-language support for diverse learners, as listed in the README.
Based on a classic example from Martin Fowler's 'Refactoring' book, offering practical relevance for improving legacy code design.
Limited to one code snippet involving parrots, lacking variety in refactoring challenges or exposure to other common code smells.
Relies heavily on video tutorials, which may not suit all learning styles or be accessible without internet, with no comprehensive written guides provided.
As a static kata, it lacks ongoing updates, community contributions, or extensions compared to active open-source projects with evolving features.