AI na legacy kódu: jak modernizovat codebase, která má víc let než váš tým
Přejít na sekci
Paradoxně, AI je nejužitečnější tam, kde je kód nejhorší. Legacy codebase bez dokumentace, bez testů, s propletenými závislostmi — přesně tady AI ušetří nejvíc času. A přesně tady ji většina týmů nepoužívá, protože 'ten kód je příliš složitý na AI.'
Naopak. Čím složitější a méně dokumentovaný kód, tím větší hodnotu AI přináší. Tady je ověřený postup ve čtyřech krocích.
Krok 1: Pochopení — nechte AI zmapovat terén
'Vysvětli, co dělá tento modul. Nakresli flow dat od vstupu po výstup. Identifikuj všechny závislosti a side effecty.' AI přečte tisíce řádků kódu a vytvoří srozumitelný popis za minuty. Ruční analýza by trvala dny.
# Prompt pro pochopení legacy modulu:
Precti vsechny soubory v src/billing/
Chtěl bych pochopit:
1. Co tento modul dela — hlavni ucel
2. Jaká data prichazi dovnitr a co vychazi ven
3. Jaké jsou zavislosti na jinych modulech
4. Kde jsou side effecty (DB zapisy, API calls)
5. Znamé problemy — code smells, tech debt
Vystup jako Markdown dokument. Bud strucny.Tohle je případ použití číslo jedna pro AI na legacy kódu. Jeden prompt vám dá přehled, který by jinak vyžadoval hodiny studování cizího kódu. A na rozdíl od lidské analýzy AI nepomíjí 'nudné' části.
Krok 2: Záchranná síť — generování chybějících testů
Legacy kód typicky nemá testy. AI je dokáže vygenerovat: 'Napiš unit testy pro tento modul. Pokryj existující chování — nechci měnit implementaci, chci safety net pro budoucí refaktoring.' Testy jako dokumentace toho, co kód dělá TEĎ.
Klíčové: testy pro legacy kód nemají dokazovat, že kód je správný. Mají zachytit změny v chování. Jsou alarm systém — řeknou vám, když refaktoring něco rozbil.
# Prompt pro generovani safety net testu:
Napis unit testy pro src/billing/calculator.ts.
Pravidla:
- Pokryj VSECHNY existujici code paths
- Testuj AKTUALNI chovani (i kdyz muze byt buggy)
- Zahrn edge cases: null vstupy, prazdne pole,
extremni hodnoty
- Kazdý test pojmenuj popisne:
"should return X when Y"
- Po napsani spust testy a oprav selhani
Tyto testy slouzi jako safety net pro refaktoring.
NEMEN implementaci, jen testuj co dela ted.Typický výsledek: 15–30 unit testů za 5 minut. Ručně by to trvalo hodiny. A teď máte záchrannou síť pro další krok.
Krok 3: Postupný refaktoring — malé, ověřitelné kroky
'Extrahuj tuto logiku do samostatné funkce. Spusť testy. Pak přejmenuj proměnné na smysluplné názvy. Spusť testy.' Malé, ověřitelné kroky. AI dělá mechanickou práci, testy ověřují každý krok.
- Typické refaktoringové kroky pro AI:
- Extrahuj funkci z long method (spusť testy)
- Přejmenuj proměnné na smysluplné názvy (spusť testy)
- Přidej typy k existujícím funkcím (spusť testy)
- Odstraň mrtvý kód a nepoužité importy (spusť testy)
- Rozděl velký soubor na menší moduly (spusť testy)
- Nahraď magic numbers konstantami (spusť testy)
# Prompt pro postupny refaktoring:
Refaktoruj src/billing/calculator.ts:
1. Extrahuj funkci calculateDiscount z radku 145-210
2. Spust testy
3. Prejmenuj promenne: d -> discount, t -> total,
u -> user
4. Spust testy
5. Pridej TypeScript typy ke vsem parametrum
6. Spust testy
Po kazdem kroku VZDY spust testy.
Pokud neco selze, oprav to pred dalsim krokem.
NEDELEJ vice nez jeden krok najednou.Krok 4: Dokumentace — zachyťte, co jste zjistili
Během refaktoringu jste pochopili, jak modul funguje. Tohle je ideální čas nechat AI napsat dokumentaci: 'Na základě naší práce napiš dokumentaci pro tento modul. Zahrň: co dělá, jak ho použít, známá omezení, a rozhodnutí, která jsme udělali během refaktoringu.'
Co nedelegovat na AI
Rozhodnutí o tom, CO refaktorovat a v jakém pořadí. Migrace databáze. Změny v public API. Cokoliv, kde chyba znamená production incident. Na tohle potřebujete seniora, který zná systém. AI je nástroj v jeho rukou, ne náhrada.
- Co delegovat AI: pochopení kódu, generování testů, mechanický refaktoring, dokumentace
- Co nedelegovat AI: strategická rozhodnutí o pořadí, DB migrace, public API změny, security-kritické části
- Zlaté pravidlo: AI dělá mechaniku, vy děláte strategii
Reálné výsledky
Na jednom projektu jsem tímto postupem zrefaktoroval 8000-řádkový billing modul za 3 dny. Bez AI by to trvalo 2–3 týdny. Klíčové bylo: AI vygenerovala 47 unit testů (krok 2), které sloužily jako safety net pro každý další krok. Ani jeden test po refaktoringu neselhal — chování modulu zůstalo totožné.
Legacy kód není problém. Legacy kód bez testů je problém. AI vám pomůže vygenerovat testy rychleji než cokoliv jiného — a tím promění nebezpečný refaktoring na bezpečný.
Chcete se dozvědět víc? Podívejte se na náš kurz AI pro legacy kód — ai-legacy-code na /cs/courses/ai-legacy-code
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-assisted refaktoring: jak bezpečně měnit kód, kterého se všichni bojí
Každý codebase má ten soubor. 2000 řádků, žádné testy, kdo to napsal už tu nepracuje. AI je ideální nástroj na tohle — ale jen se správným procesem.
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