Vibe coding znamená, že často spustíš kód, kterému úplně nerozumíš, a najednou ti to spadne. Žádná panika. Za roky praxe jsem zjistil, že debugování není o tom znát zpaměti celý jazyk, ale o systematickém postupu. Ukážu ti, jak chybu najít a opravit, i když koukáš na cizí řádky jak puk.
Chybová hláška je tvůj kamarád, ne nepřítel
První instinkt většiny lidí je červený text zavřít a předstírat, že tam nebyl. Přitom chybová hláška je nejcennější věc, kterou máš. Programátoři ji tam dali schválně, aby ti řekli, co se stalo.
Když narazíš na chybu, hledej tři věci: typ chyby (třeba TypeError nebo NullPointerException), zprávu lidskou řečí a hlavně řádek a soubor, kde to spadlo. Ten řádek je místo, kde začneš kopat. Zbytek hlášky je často jen cesta, jak se k té chybě kód dostal.
Systematický postup, který funguje vždy
Náhodné měnění věcí a doufání, že to zafunguje, vede jen k většímu chaosu. Drž se místo toho tohohle postupu:
- Přečti si celou chybovou hlášku, ne jen první řádek. Najdi soubor a číslo řádku.
- Otevři ten řádek a podívej se o pár řádků výš a níž, ať vidíš souvislost.
- Zjisti, co se na tom místě má dít a co se reálně děje. Rozdíl je tvoje chyba.
- Změň jednu věc, ulož, spusť znovu. Jednu věc, ne pět najednou.
- Když to nepomohlo, vrať změnu zpátky a zkus jinou hypotézu.
Klíčové je měnit vždy jen jednu věc. Když jich naházíš víc naráz, nikdy nezjistíš, co problém vlastně vyřešilo.
Zúžit místo, kde se to láme
Často je chyba schovaná někde uvnitř delšího kusu kódu a ty nevíš, ve kterém místě přesně to padá. Tady pomáhá technika, které říkám rozpůlení. Najdeš zhruba prostředek podezřelé části a ověříš, jestli do toho místa kód ještě běží správně.
Pokud do půlky všechno funguje, chyba je v druhé polovině. Pokud ne, je v první. Takhle problém půlíš tak dlouho, dokud nezůstane jeden nebo dva řádky, na kterých to stojí. Je to mnohem rychlejší než pročítat všechno odshora dolů a doufat, že chybu zahlédneš okem.
Stejně se vyplatí ptát se, kdy to naposledy fungovalo. Když si vzpomeneš, že před deseti minutami bylo všechno v pořádku, stačí se podívat, co jsi za těch deset minut změnil. Chyba bude skoro jistě tam. Právě proto se vyplatí dělat malé kroky a často ukládat, ať máš úzké okno, ve kterém pátrat.
Ladění pomocí výpisů
Nejstarší trik na světě a pořád funguje. Když nevíš, jakou hodnotu má proměnná v určitém místě, prostě si ji vypiš do konzole. Uvidíš, jestli tam je to, co čekáš.
function spoctiCenu(polozky) {
console.log("polozky na vstupu:", polozky);
let soucet = 0;
for (const p of polozky) {
console.log("zpracovavam:", p.nazev, p.cena);
soucet += p.cena;
}
console.log("vysledny soucet:", soucet);
return soucet;
}Když spustíš tohle, hned uvidíš, kde se to láme. Třeba zjistíš, že cena přichází jako text "199" místo čísla 199 a sčítání proto nefunguje. Bez výpisu bys hádal donekonečna.
Jak zapojit AI do hledání chyby
AI je na debugování skvělá, ale jen když jí dáš správné informace. Nestačí napsat nefunguje to. Musíš jí dát kontext, stejně jako bys ho dal kolegovi.
Když AI předáš kód, který padá, plný text chybové hlášky a popis toho, co jsi čekal, dostaneš mnohem lepší odpověď. Funguje to úplně stejně jako u jiných promptů, projdi si jak psát prompty pro AI, ať z toho vytěžíš maximum. Dobrý prompt na chybu vypadá zhruba takhle:
Tady je funkce, která padá. Tady je celá chybová hláška. Čekal jsem, že vrátí součet cen, ale dostávám místo čísla text. Najdi příčinu a navrhni opravu.
Časté typy chyb a co znamenají
Většina chyb spadá do pár kategorií, které poznáš podle názvu:
- Něco je null nebo undefined: snažíš se pracovat s něčím, co neexistuje, třeba s daty, která se ještě nenačetla.
- Type error: pleteš dohromady text a číslo, nebo voláš metodu na špatném typu.
- Syntax error: chybí závorka, čárka nebo středník. Editor to často podtrhne.
- 404 nebo 500: problém v komunikaci se serverem nebo databází, ne v zobrazení.
Když ladíš věci kolem dat a serveru, pomůže ti vědět, jak to funguje pod kapotou. K tomu mrkni na napojení aplikace na databázi a API.
Klid v hlavě je půlka úspěchu
Zní to možná divně, ale nejdůležitější dovednost při debugování je nepanikařit. Když ti něco spadne, je snadné propadnout pocitu, že je celý projekt v troskách a nic nikdy nebude fungovat. Skoro vždy je to ale jedna malá hloupost, překlep, chybějící závorka nebo špatný typ dat.
Když cítíš, že se zacykluješ a koukáš na ten samý řádek podesáté, vstaň a na pět minut odejdi. Mozek na pozadí dál pracuje a řešení tě často napadne ve chvíli, kdy zrovna děláš něco jiného. Sám jsem takhle vyřešil spoustu chyb u kávy, ne u monitoru.
A ještě jedna věc: každá chyba, kterou vyřešíš, tě posune. Příště ji poznáš o vteřinu rychleji. Debugování je dovednost, která roste s každým problémem, takže ber i ošklivé chyby jako trénink, ne jako prohru.
Časté dotazy
Co mám dělat, když chybová hláška vůbec nedává smysl?
Zkopíruj ji celou a vlož do vyhledávače nebo do AI. Skoro vždy na ni už někdo narazil před tebou. AI ti často přeloží technický žargon do lidské řeči a řekne, co s tím.
Jak poznám, že chyba je v mém kódu a ne v nástroji?
V naprosté většině případů je chyba na tvojí straně, i když to tak nevypadá. Knihovny a frameworky používají miliony lidí a jsou prověřené. Začni vždy hledáním u sebe, ne u nástroje.
Můžu nechat opravu chyb celou na AI?
Můžeš, ale měl bys rozumět tomu, co AI změnila, jinak si zaděláváš na další problémy. Ber AI jako rychlého pomocníka, ne jako náhradu vlastního přemýšlení. Vždy zkontroluj, že oprava řeší příčinu, ne jen příznak.
Pokud se v aplikaci objevují chyby, které nezvládáš odladit sám, nebo potřebuješ někoho, kdo to vezme za tebe, napiš mi přes kontakt. Stavím a opravuju aplikace na míru a rád ti pomůžu chybu dohledat.