Programovaniepokročilý

Čo je Refaktoring?

Refaktoring je proces reštrukturalizácie existujúceho kódu bez zmeny jeho vonkajšieho správania. Cieľom je zlepšiť čitateľnosť, údržbu a vnútornú štruktúru kódu. Pojem spopularizoval Martin Fowler vo svojej knihe z roku 1999.

Definícia Refaktoring

Čo je refaktoring

Refaktoring (refaktorovanie kódu) je proces reštrukturalizácie existujúceho zdrojového kódu bez zmeny jeho externého správania. Pojem spopularizoval Martin Fowler v knihe „Refactoring: Improving the Design of Existing Code" z roku 1999, ktorá je dodnes kanonickou referenciou pre refaktorovacie metódy.

Kedy refaktorovať

Refaktoring je zvyčajne motivovaný rozpoznaním code smell (zápachu kódu) — vzorca, ktorý naznačuje hlbší problém:

  • Príliš dlhá metóda — funkcia robí príliš veľa vecí naraz
  • Duplikovaný kód — rovnaká logika na viacerých miestach
  • Priveľa parametrov — funkcia prijíma príliš veľa argumentov
  • God class — trieda, ktorá robí všetko a má stovky riadkov
  • Magické čísla — hardkódované hodnoty bez vysvetlenia

Bezpečný refaktoring

Kľúčom k bezpečnému refaktoringu sú testy — pred refaktorovaním by ste mali mať dostatočné pokrytie unit testami. Ak testy prechádzajú pred aj po refaktoringu, máte istotu, že ste nezmenili správanie. Výhody zahŕňajú lepšiu čitateľnosť kódu, zníženú komplexitu a jednoduchšie pridávanie nových funkcií.

Praktický príklad

Príklad: Máte funkciu processOrder() s 200 riadkami, ktorá validuje objednávku, počíta cenu, aplikuje zľavy, ukladá do databázy a odosiela e-mail.

Po refaktoringu: Rozdelíte ju na päť menších funkcií:

  • validateOrder() — validácia vstupných údajov
  • calculatePrice() — výpočet ceny
  • applyDiscount() — aplikovanie zľavy
  • saveOrder() — uloženie do databázy
  • sendConfirmation() — odoslanie potvrdenia

Funkcia processOrder() teraz len volá tieto funkcie — je krátka, čitateľná a každá časť sa dá samostatne testovať.

Často kladené otázky

Čo je refaktoring a prečo je dôležitý?

Refaktoring je úprava vnútornej štruktúry kódu bez zmeny jeho správania. Je dôležitý, pretože zlepšuje čitateľnosť, uľahčuje údržbu a znižuje technický dlh — kód sa ľahšie rozširuje o nové funkcie.

Kedy by som mal refaktorovať kód?

Refaktorujte, keď pridávate novú funkciu (najprv upracte kód), opravujete bug (zlepšite štruktúru), alebo pri code review (keď vidíte code smell). Pravidlo „Rule of Three" hovorí: ak niečo robíte tretíkrát, je čas refaktorovať.

Aký je rozdiel medzi refaktoringom a prepísaním kódu?

Refaktoring mení vnútornú štruktúru postupne a zachováva funkčnosť. Prepísanie (rewrite) znamená zahodenie existujúceho kódu a napísanie od nuly — je riskantnejšie a časovo náročnejšie.

Súvisiace pojmy

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.