AI-assisted refaktoring: jak bezpečně měnit kód, kterého se všichni bojí
Přejít na sekci
Každý codebase má ten soubor. Ten, kterého se nikdo nechce dotknout. '2000 řádků, žádné testy, kdo to napsal už tu nepracuje.' AI je ideální nástroj na tohle — ale jen s jasným procesem. Bez procesu AI refaktoring způsobí víc škody než užitku.
Refaktoring bez testů je jako chození po laně bez sítě. AI vám pomůže napsat testy rychle — a tím promění nebezpečný úkol na bezpečný.
Krok 1: Pochopení — zmapujte terén
'Analyzuj tento soubor. Co dělá? Jaké má závislosti? Kde jsou rizika? Jaké jsou side effecty?' AI zmapuje kód, identifikuje vstupy, výstupy a side effecty. Vy dostanete mapu místo džungle.
# Prompt pro analyzu pred refaktoringem:
Analyzuj src/services/order-processor.ts.
Chtěl bych vedet:
1. Hlavni ucel souboru
2. Vsechny verejne funkce a co delaji
3. Zavislosti na jinych modulech
4. Side effecty (DB zapisy, API calls, eventy)
5. Rizikova mista (chybejici error handling,
magic numbers, tight coupling)
6. Navrhni poradi, v jakem refaktorovat
Bud strucny a konkretni.Tohle je kritické. Před jakýmkoliv refaktoringem musíte pochopit, co kód dělá. AI přečte celý soubor za sekundy a dá vám přehled, který by vám jinak trval hodiny.
Krok 2: Záchranná síť — testy pro aktuální stav
'Napiš testy, které zachytí existující chování. Nechci měnit funkčnost — chci vědět, když se něco rozbije.' AI vygeneruje testy pro aktuální stav. Teď máte alarm systém pro refaktoring.
Klíčové: tyto testy netestují, že kód je správný. Testují, že se chování nezměnilo. I když aktuální chování je buggy — test zachytí, když se změní. To je přesně to, co potřebujete.
# Prompt pro safety net testy:
Napis unit testy pro orderProcessor.
- Testuj VSECHNY existujici code paths
- Zahrn happy path, error states, edge cases
- Testuj aktualni chovani (i kdyz je mozna buggy)
- Pojmenuj testy popisne:
'should return X when Y'
- Po napsani SPUST testy a oprav selhani
- Neměn implementaci — jen testujTypický výsledek: 20–40 testů za 5–10 minut. Ručně by to trvalo půl dne až den. A teď máte záchrannou síť — každá změna, která rozbije existující chování, bude odhalena.
Krok 3: Postupné změny — malé, ověřitelné kroky
Tady je klíčové pravidlo: NIKDY nerefaktorujte všechno najednou. Malé kroky, po každém spustit testy. AI dělá mechanickou práci, testy ověřují každý krok.
- Typické refaktoringové kroky (vždy po jednom):
- 1. Extrahuj funkci z long method — spusť testy
- 2. Přejmenuj proměnné na smysluplné názvy — spusť testy
- 3. Přidej TypeScript typy — spusť testy
- 4. Odstraň mrtvý kód — spusť testy
- 5. Rozděl velký soubor na menší moduly — spusť testy
- 6. Nahraď magic numbers konstantami — spusť testy
- 7. Přidej chybějící error handling — spusť testy
# Prompt pro postupny refaktoring:
Refaktoruj orderProcessor. Po kazdem kroku
spust testy. Pokud neco selze, oprav pred
dalsim krokem.
Krok 1: Extrahuj calculateShipping z radku 89-145
do samostatne funkce.
Krok 2: Prejmenuj: o -> order, d -> discount,
s -> shippingCost
Krok 3: Pridej TypeScript typy ke vsem parametrum
a navratovym hodnotam.
Krok 4: Nahrad magic number 0.15 konstantou
TAX_RATE.
VZDY spust testy mezi kroky.
Jeden krok = jeden commit.Krok 4: Dokumentace změn
Po refaktoringu nechte AI napsat dokumentaci. 'Na základě naší práce napiš dokumentaci pro tento modul. Zahrň: co dělá, veřejné API, známá omezení, a co jsme změnili během refaktoringu a proč.' Tohle zachytí kontext, který by se jinak ztratil.
Co nikdy nedělat
- 'Refaktoruj celý soubor najednou' — recept na katastrofu i s AI
- Refaktorovat bez testů — žádná záchranná síť
- Víceré velké změny v jednom commitu — nemáte kam se vrátit
- Slepě věřit AI výstupu bez review — AI dělá subtilní chyby
- Měnit chování během refaktoringu — refaktoring = stejná funkčnost, lepší struktura
Reálné výsledky
Na jednom projektu jsem tímto postupem zrefaktoroval 3500-řádkový modul za 2 dny. AI vygenerovala 35 testů (krok 2), pak provedla 12 refaktoringových kroků. Každý krok: AI změna -> spuštění testů -> review -> commit. Výsledek: stejná funkčnost, o 60 % menší soubor, plně typovaný, s dokumentací.
Bez AI by totéž trvalo 8–10 dní. Klíčový rozdíl není v tom, že AI refaktoruje rychleji — ale v tom, že AI vygeneruje safety net (testy) za minuty místo hodin. A bez safety netu byste si refaktoring netroufl vůbec.
Nejlepší refaktoring je nudný refaktoring. Malé kroky, testy po každém, žádná překvapení. AI dělá nudnou práci za vás — vy děláte rozhodnutí.
Karel Čech
Vývojář a AI konzultant. Pomáhám technickým týmům zavést AI do každodenní práce — od workshopů po dlouhodobé strategie.
LinkedIn →Buďte o krok napřed s AI
Praktické tipy k AI pro vývojové týmy. Žádný spam, odhlášení kdykoliv.
Zaujal vás článek? Ponořte se hlouběji:
Související články
AI na legacy kódu: jak modernizovat codebase, která má víc let než váš tým
Legacy kód je tam, kde AI přináší největší ROI. 10 000 řádků bez testů a dokumentace? Přesně tady AI ušetří týdny práce — pokud víte jak.
AI pro celý tým: sdílené workspace, kolektivní agenti a team workflows
Každý vývojář si promptuje po svém. To je plýtvání. AI je mnohem silnější, když ji tým používá koordinovaně — tady je jak.
Cloud agenti v praxi: Devin, Codex, a kdy dává smysl AI vývojář v cloudu
Plně autonomní AI vývojáři v cloudu slibují hodně. Ale reálně zvládnou jen specifické úkoly. Tady je, kde fungují, kde ne, a jak je použít efektivně.
Jdeme na to?
Nezávazná 30minutová konzultace — zjistíme, kde AI může váš tým posunout nejvíc.
Domluvit konzultaci zdarma