refaktorovani

Refaktorování (Čištění kódu)

Refaktorování je nezbytnou součástí životního cyklu softwaru. Stejně jako zahrada vyžaduje pravidelné pletí, aby nezarostla plevelem, kód vyžaduje refaktorování, aby se v něm nehromadil tzv. technický dluh.

Základní pravidlo zní: Pokud kód po refaktorování dělá něco jiného než předtím, nejednalo se o refaktorování, ale o opravu chyb nebo vývoj nové funkce.


Hlavní cíle refaktorování

  • Zlepšení čitelnosti: Aby kód pochopil i někdo jiný (nebo autor sám po půl roce).
  • Odstranění duplicit: Důsledné uplatňování principu DRY.
  • Snížení složitosti: Rozbití obřích funkcí na menší, přehlednější celky.
  • Usnadnění budoucích změn: Čistý kód se mnohem lépe rozšiřuje o nové funkce.

Kdy refaktorovat?

Nejlepším průvodcem jsou tzv. Code Smells (zápachy kódu) – náznaky, že s kódem není něco v pořádku:

  • Duplicitní kód: Stejná logika na více místech.
  • Příliš dlouhá metoda: Funkce, která má stovky řádků a dělá deset věcí najednou.
  • Obří třída (God Object): Třída, která se snaží ovládat celý program.
  • Nesrozumitelná jména: Proměnné jako a, temp nebo data123.

Běžné techniky refaktorování

1. Extraxe metody (Extract Method)

Vezmete část složitého kódu z dlouhé funkce, přesunete ji do nové, samostatné funkce a tu původní nahradíte voláním této nové funkce.

2. Přejmenování (Rename)

Změna názvů proměnných, metod nebo tříd tak, aby přesně vyjadřovaly svůj účel. Moderní vývojová prostředí (IDE) toto zvládnou automaticky v celém projektu.

3. Nahrazení magických čísel konstantami

Místo čísla 86400 v kódu použijete pojmenovanou konstantu SEKUND_ZA_DEN.


Postup při bezpečném refaktorování

Refaktorování může být riskantní, proto by mělo probíhat v malých krocích:

1. **Mějte testy:** Před začátkem byste měli mít sadu automatických testů, které ověří, že kód funguje správně.
2. **Malé změny:** Udělejte jednu drobnou úpravu (např. přejmenování).
3. **Spusťte testy:** Pokud všechny projdou, pokračujte. Pokud ne, vraťte změnu zpět.
4. **Čistěte:** Opakujte, dokud kód není "voňavý".

Rozdíl: Refaktorování vs. Optimalizace

Činnost Co se mění? Cíl
Refaktorování Vnitřní struktura. Čitelnost a udržovatelnost.
Optimalizace Využití zdrojů. Vyšší rychlost, nižší spotřeba paměti.

Pozor: Optimalizovaný kód je často hůře čitelný. Proto by se mělo nejprve refaktorovat (pro čistotu) a teprve v případě nutnosti optimalizovat (pro výkon).


Související pojmy: DRY princip, Technický dluh, Jednotkové testy (Unit Testing), SOLID principy, KISS.

refaktorovani.txt · Poslední úprava: autor: admin