Pochopení legacy kódu s pomocí AI
Přejít na sekci
Kód, který nikdo nepsal (ale všichni na něm závisí)
V každé firmě existuje ten jeden repozitář. Možná je to interní nástroj napsán v PHP 5, který běží na serveru pod stolem. Možná je to Java monolith z roku 2012 s třemi stovkami tříd a nulovými testy. Možná je to Python skript, který spálí noční importy dat a nikdo neví, co přesně dělá. Všichni na něm závisí. Nikdo mu nerozumí. A nikdo se na něj nechce dívat.
Tradičně máte dvě možnosti: strávit týdny čtením každého řádku, nebo napsat nový systém od nuly (a zjistit, že ten starý dělal věci, o kterých jste nevěděli). AI otevírá třetí cestu: systematické pochopení existujícího kódu za zlomek času.
Legacy kód není špatný kód. Je to kód, který přežil dělší než jeho dokumentace. To znamená, že dělal něco správně — vaším úkolem je zjistit co.
Extrakce architektury: od chaosu k diagramu
Začněte tím, že AI nakrmíte adresářovou strukturou projektu a klíčovými soubory. Nechtějte po něm hned detailní analýzu každé funkce — začněte shora. 'Jaké vrstvy tento projekt má? Kde je vstupní bod? Jaké externí služby volá?' AI dokáže z adresářové struktury, importů a konfiguračních souborů odvodit architekturu, kterou byste ručně skládali celý den.
Praktický postup: použijte příkaz tree nebo ls -R pro získání adresářové struktury. Přidejte soubory jako package.json, pom.xml nebo requirements.txt. Nechte AI vygenerovat Mermaid diagram hlavních komponent a jejich vztahů. Za pět minut máte mapu, která by jinak vyžadovala půl dne reverse engineeringu.
Použijte Claude nebo Cursor s kontextem celého repozitáře. Moderní AI nástroje zvládnou analyzovat statisíce souborů najednou — využijte to. IDE pluginy jako Cursor nebo Windsurf umí indexovat celý projekt.
Mapování závislostí: co na čem závisí
Legacy kód má často skryté závislosti, které nenačete v žádném konfiguračním souboru. Hardcoded URL adresy, implicitní očekávání prostředí, časové zóny nastavené hluboko v kódu. AI dokáže prohledat kód a identifikovat tyto skryté vazby. Zadejte: 'Najdi všechny externí závislosti — API volání, databázová připojení, souborové operace, environment proměnné.'
Zvlášť důležité je pochopit datové toky. Odkud data přicházejí? Jak se transformují? Kam odcházejí? Nechte AI vytvořit datový flow diagram — často odkryje věci, které by vám trvaly dny ručního trasování. Například skrytý side effect, kdy funkce pro výpočet ceny zároveň zapisuje do logovací tabulky.
Business logika: pochopení pravidel ukrytých v kódu
Nejcennější část legacy kódu nejsou technické detaily — je to business logika. Pravidla, která se postupně nabalovala přes roky v podobě if-else větví, speciálních případů a hotfixů. AI dokáže tyto pravidla extrahovat a přeformulovat do čitelné podoby. Zadejte: 'Extrahuj všechna business pravidla z této třídy. Pro každé pravidlo uveď: co kontroluje, jaký je výsledek a jaké výjimky existují.'
Pozor na hallucinations. AI může business logiku špatně interpretovat, zvlášť u implicitních pravidel. Vždy si ověřte, že extrahovaná pravidla odpovídají reálnému chování — například spuštěním stávajícího kódu s testovacími daty. AI vám pomůže pochopit, co kód pravděpodobně dělá. Potvrdit to musíte vy.
Dokumentační výstup: základ pro další kroky
Výstupem této fáze by měl být dokument, který pokrývá čtyři oblasti: architektonický přehled (vrstvy, komponenty, komunikace), mapa závislostí (externí služby, databáze, API), seznam business pravidel (extrahovaných z kódu) a seznam rizik (co je křehké, co nemá testy, co je hardcoded). Tento dokument je váš základ pro všechno další — refaktoring, testy i modernizaci.
Při analýze legacy kódu začněte od entry pointů (main, HTTP handlery, cron jobs) a postupujte dovnitř. 'Jaké entry pointy má tento projekt? Co se stane, když přijde HTTP request na /api/orders?' je lepší než 'vysvětli celý kód'.
Vyberte jeden legacy projekt, který máte k dispozici. Pomocí AI: 1) Vygenerujte architektonický diagram (Mermaid). 2) Identifikujte všechny externí závislosti. 3) Extrahujte alespoň 3 business pravidla z nejkomplexnější třídy. 4) Vytvořte seznam 'skrytých překvapení' — věcí, které jste nečekali. Porovnejte výstup AI s vlastním chápáním. Kde vás AI překvapilo?
Nápověda
Začněte s menším modulem, ne s celým monolitem. AI dokáže zpracovat i velké projekty, ale lepší výsledky získáte, když postupujete po částech.
Vyberte nejsložitější nebo nejméně dokumentovaný modul ve vašem legacy codebase. Vložte ho do AI (Claude má 200K token kontext, zvládne i velké soubory) s promptem: 'Vysvětli tento kód. 1) Co dělá — high-level účel, 2) Klíčové funkce a jejich role, 3) Datový tok — co vstupuje, co vystupuje, 4) Potenciální problémy nebo code smells, 5) Závislosti na ostatních modulech.' Porovnejte AI vysvětlení s vaším chápáním — překvapí vás něco?
Nápověda
Zdokumentujte svůj postup a výsledky — poslouží jako reference pro budoucí podobné úkoly.
Vyberte jeden modul z legacy projektu. Zadejte AI: 'Analyzuj tento kód a vytvoř datový flow diagram v Mermaid formátu. Zahrň: odkud data přicházejí (API, DB, soubory), jak se transformují, kam odcházejí (DB, API, logy), a jaké side effecty existují (zápis do cache, notifikace, audit log).' Porovnejte diagram s vaším mentálním modelem. Kde vás AI překvapilo?
Nápověda
Side effecty jsou nejčastější překvapení. Funkce 'calculateTotal' může zároveň zapisovat do audit logu nebo posílat notifikaci — AI tyto skryté vazby odhalí.
- AI dokáže za minuty odvodit architekturu, která by ručně trvala celý den
- Mapování závislostí odkryje skryté vazby, které nejsou v žádné dokumentaci
- Business logika ukrytá v kódu je nejcennější část legacy systému
- Vždy ověřujte AI výstupy — hallucinations u legacy kódu jsou časté