Refaktoring I (úvod)

Jistě každý z nás již někdy slyšel o refaktoringu, přesto téměř každý den narážím na kusy kódu, které jakoby o něm neslyšely nikdy. Zásahy do takovéhoto kódu jsou pak obtížné - trvají déle a riziko zavlečení chyby se zvyšuje. Jak se s tím tedy vypořádat?

Co je to refaktoring?

Na refaktoring lze nahlížet dvěma způsoby, za prvé jako na podstatné jméno a za druhé jako na sloveso (činnost).

Refaktoring (podstatné jméno) - Změna vnitřní struktury programu, která je prováděna za účelem zvýšení čitelnosti a snazší upravitelnosti kódu, aniž by došlo ke změně vnějšího chování.

Refaktoring (sloveso) - Změna vnitřní struktury programu prováděná aplikací dílčích refaktoringů (viz předchozí definici), aniž by došlo ke změně vnějšího chování.

Pokud budu mluvit o refaktoringu jako o činnosti, budu dále používat slovo refaktorování. Jak z definice vyplývá, refaktorování nikdy nepřidává žádné nové funkce pro koncového uživatele, ten dokonce vůbec netuší, že nějaké refaktorování proběhlo. Refaktorování pouze připravuje půdu pro chystané úpravy již existujícího kódu. Příkladem refaktoringu je přesun či extrakce metody, rozpad velké třídy na více malých apod.

Refaktorování = začištění kódu?

Ve své podstatě ano, ale je to i něco více. Refaktorování je kontrolovaný proces, který se snaží o vyšší efektivitu tím, že zavádí a popisuje dílčí refaktoringy, a především o minimalizaci rizika zavlečení chyby, neboť nezbytnou součástí refaktoriování je i testování.

Nemyslete si, že vás se refaktorování netýká. Je naprosto běžné, že při vývoji softwaru neustále přepínáme mezi dvěma módy: refaktorováním (či alespoň začišťováním kódu) a vývojem nových funkcionalit. Příkladem může být přidání nového formuláře do webové stránky. Vím, že podobný formulář už se někde na webu vyskytuje, ale aniž bych zasáhl do strukury kódu, nejsem schopný jej nijak využít. Začnu tedy refaktorováním, pak teprve přidám nový formulář. Během tohoto procesu pravděpodobně přepnu mezi oběma módy několikrát.

Příště si povíme, jaké jsou přínosy a rizika refaktoringu, kdy refaktorovat a kdy raději ne.

Zdroj Martin Fowler - Refaktoring

Článek obsahuje 0 komentářů