Refaktoring starého JavaScriptu: jak přepsat legacy kód na moderní
Starý JavaScriptový kód často pochází z doby, kdy se jazyku říkalo jen „JavaScript“ a o modulech, třídách nebo asynchronních funkcích se mluvilo jen v návrzích. Typický legacy kód používá globální proměnné, řetězení callbacků, `var` místo `let` a `const`, a funkce, které dělají pět věcí najednou. Refaktoring neznamená přepsat vše od nuly, ale postupně zavádět moderní standardy tam, kde to dává smysl. Prvním krokem je zmapovat, které části kódu jsou skutečně problematické – obvykle ty, které se často mění nebo způsobují chyby. Pak teprve začněte s izolovanými úpravami.
Základem je nahradit `var` za `let` a `const`, používat arrow funkce pro krátké callbacks a zavést moduly (ES modules nebo alespoň CommonJS s jasnými exporty). Místo ručního spojování řetězců použijte template literals, místo `arguments` použijte rest parametry. Velkou výhrou je zavedení `async/await` místo vnořených callbacků nebo Promise chainů. Pokud si nejste jisti, jak správně strukturovat čistý kód, na vyvojarska.cz najdete praktické rady, jak psát čistý kód v JavaScriptu, které se dají aplikovat i na starší projekty. Nezapomeňte na testy – bez nich se refaktoring rychle zvrhne v noční můru.
Dalším krokem je oddělení logiky od DOM manipulace. Starý kód často míchá události, výpočty a renderování do jedné funkce. Vytáhněte čisté funkce, které dostanou data a vrátí výsledek, a teprve pak je napojte na události. Zvažte zavedení malé knihovny pro stav nebo alespoň jednoduchého observer patternu. Pokud je kód opravdu rozsáhlý, refaktorujte po malých částech – například jedna funkce denně. Vždy mějte možnost se vrátit zpět pomocí gitu. Moderní standardy nejsou cíl, ale nástroj, jak kód zrychlit, zpřehlednit a zbavit se technického dluhu.
Na závěr: nebojte se zahodit staré závislosti, které už nikdo neudržuje. Nahraďte je moderními alternativami nebo nativním řešením. Sledujte, jaké funkce prohlížeče dnes podporují – polyfilly často už nejsou potřeba. Refaktoring je maraton, ne sprint. Vytrvejte a za pár měsíců budete mít kód, který se čte jako dnešní dokumentace, ne jako archeologický nález.