- změny prováděj v malých krocích
- refaktoring je změna vnitřní struktury kódu, aniž by bylo změněno jeho vnější chování
- je nutné už mít testy, abych mohl kontrolovat, že jsem vnitřní změnou nezměnil vnější chování
Kdy bych měl začít s refaktoringem?
- objevují se duplicity
- mám dlouhé metody
- mám velké třídy a nízkou soudržnost GRASP - Vysoká soudržnost
- příliš mnoho parametrů
- nedodržené jmenné konvence
- složité struktury podmínek
Vybrané techniky
- přejmenovávání metod (na lepší názvy)
- zapouzdření atributu
- nahrazení dědičnosti delegováním
- rozbití striktní dědičnost-vazby
- nahrazení chybového kódu výjimkou
- extrahování metody (např. rozdělení do více metod, do služby atd.)
- skrytí metody
- zavedení Null objektu
- zavedení objektu jako parametru