AI generovaný kód nejčastěji pokazí oprávnění, tajné klíče, validaci vstupů, výkon databáze, zpracování chyb, konzistenci kódu a nasazení. Na ukázce funguje, ale selže na skutečných uživatelích a datech, proto ho má před produkcí zkontrolovat zkušený programátor.
Následující seznam vychází z naší každodenní práce. AI asistenti nám píšou většinu rutinního kódu a tohle jsou místa, kde jejich výstup opravujeme nejčastěji.
Proč právě tyto chyby
Společné mají jedno: na ukázce nejsou vidět. AI dostane úkol, napíše kód a ověří, že scénář z promptu funguje. Nezeptá se, co udělá jiný uživatel, co se stane při stonásobku dat nebo jak se aplikace nasadí podruhé. Tyto otázky si klade člověk, který už viděl, jak se systémy kazí v provozu.
1. Oprávnění: kdo smí vidět co
AI spolehlivě napíše přihlášení. Mnohem méně spolehlivě ověří, zda přihlášený uživatel smí vidět konkrétní záznam. Typická chyba: faktura se načte podle čísla v adrese a stačí ho změnit, abyste viděli fakturu jiného zákazníka. Další: tlačítko „Smazat“ je běžnému uživateli skryté, ale server požadavek provede komukoli.
Jak kontrolovat: u každého endpointu se zeptejte, kde server ověřuje, že záznam patří tomuto uživateli.
2. Tajné klíče na špatném místě
API klíče k platební bráně, hesla k databázi či přístupy k e-mailu končí přímo v kódu, v repozitáři nebo, což je nejhorší, ve frontendu, kde si je kdokoli přečte v prohlížeči. AI to udělá, protože jí to na ukázce „funguje“.
Jak kontrolovat: klíče patří do proměnných prostředí na serveru. Pokud už jednou byly v gitu, je potřeba je vyměnit, ne jen smazat.
3. Validace vstupů a okrajové případy
AI píše kód pro šťastný scénář. Prázdné pole, záporné množství, diakritika ve jménu, datum přes půlnoc nebo změna letního času, dvojklik na tlačítko „Objednat“. Nic z toho na ukázce nevidíte, všechno z toho se v produkci stane.
- Ověřuje vstupy server, nebo jen formulář v prohlížeči?
- Co se stane s chybějící hodnotou, nahradí se nulou, nebo se zachová jako „nevyplněno“?
- Vytvoří dvojklik dvě objednávky?
4. Databáze a výkon
Nejčastější výkonnostní problém AI kódu: načte tisíce řádků z databáze a filtruje, sčítá nebo řadí je v aplikaci. Nebo u seznamu sta objednávek spustí sto dalších dotazů na zákazníka. S deseti testovacími záznamy je všechno rychlé, s reálnými daty stránka padá na timeout. K tomu chybějící indexy a žádná omezení v databázi.
Jak kontrolovat: filtrovat, spojovat a sčítat má databáze v dotazu. Aplikace má dostat přesně to, co potřebuje.
5. Chyby, které se ztratí
AI ráda obalí kód zachycením výjimky, které chybu potichu „sní“. Platba selže, objednávka se neuloží a nikdo se to nedozví, aplikace se tváří, že je všechno v pořádku. Stejně často chybí logování nebo upozornění, když externí API, třeba Zásilkovna, přestane odpovídat.
Jak kontrolovat: u každého zachycení chyby se zeptejte, kdo se o ní dozví a co se stane s daty.
6. Nekonzistentní kód a vymyšlené knihovny
Každý prompt je trochu jiný, a tak i kód. Tatáž věc se v aplikaci dělá třemi způsoby, funkce jsou zkopírované místo sdílené a každá oprava se musí dělat na třech místech. AI občas použije zastaralou verzi knihovny nebo si vymyslí funkci či balíček, který neexistuje. To poslední je i bezpečnostní riziko, protože útočníci takové názvy balíčků registrují.
Jak kontrolovat: při review hledejte duplicity a každou novou závislost si ověřte.
7. Nasazení a provoz
Kód, který běží na vašem počítači, ještě není aplikace v provozu. AI obvykle vynechá migrace databáze, zálohy, oddělené testovací prostředí, HTTPS, logy a monitoring. První aktualizace v produkci pak smaže data nebo shodí web na celé odpoledne.
Jak kontrolovat: umíte aplikaci nasadit jedním příkazem, vrátit předchozí verzi a obnovit databázi ze zálohy? Pokud ne, není připravená. Pomůžeme v rámci hostingu a DevOps.
Rychlý kontrolní seznam
| Oblast | Otázka na review |
|---|---|
| Oprávnění | Ověřuje server vlastnictví každého záznamu? |
| Klíče | Je v kódu, gitu nebo frontendu něco tajného? |
| Vstupy | Co se stane s prázdnou, špatnou a duplicitní hodnotou? |
| Databáze | Filtruje a sčítá dotaz, nebo aplikace? |
| Chyby | Dozví se někdo o selhání? |
| Konzistence | Dělá se tatáž věc na jednom místě? |
| Nasazení | Je tu záloha, rollback a monitoring? |
Jak tyto chyby zachytáváme my
Z toho, že AI tyto chyby dělá pravidelně, jsme si odvodili jednoduchá pravidla, která dodržujeme u každé změny:
- Malé kroky. AI dostane jeden ohraničený úkol, ne „udělej celý modul“. Malý rozdíl v kódu se dá poctivě zkontrolovat.
- Kontext projektu. AI dostane pravidla a zvyklosti projektu, aby nepsala každý soubor po svém.
- Review každé změny. Senior čte celý rozdíl v kódu, ne jen výsledek na obrazovce, a jde právě po bodech z tohoto seznamu.
- Testy a ověření na reálných datech. Dotazy zkoušíme na objemech, jaké budou v produkci, ne na deseti záznamech.
- Nasazení s možností návratu. Každou verzi lze vrátit a databázi obnovit.
Znamená to, že AI kód je špatný?
Ne. Sami s AI asistenty programujeme každý den a díky nim dodáváme řádově rychleji. Rozdíl je v tom, že každou změnu kontroluje senior, který tyto chyby zná a hledá je. AI píše, senior ručí. Jak takto pracujeme, popisujeme ve službě Vývoj softwaru s AI.
Pokud už aplikaci z AI máte, podívejte se i na článek Vibe coding: aplikaci si postavíte s AI, co dál? a na službu AI kód do produkce.
Chcete, aby se na váš kód podíval senior dřív, než ho pustíte k zákazníkům? Napište nám a domluvíme audit, začít se dá i hodinovou konzultací.
Časté otázky
Je kód generovaný AI bezpečný?
Může být, ale sám od sebe ne. Nejčastěji chybí kontrola oprávnění na serveru a tajné klíče bývají na špatném místě. Před produkcí ho má zkontrolovat zkušený programátor.
Kterou chybu AI kódu zkontrolovat jako první?
Oprávnění. Ověřte, že server při každém požadavku kontroluje, zda záznam patří přihlášenému uživateli. Únik dat jiného zákazníka je nejdražší chyba.
Proč je aplikace z AI pomalá s reálnými daty?
AI často načte hodně řádků a zpracuje je v aplikaci místo v databázi, nebo spouští dotaz pro každý záznam zvlášť. S testovacími daty to není vidět.
Používáte AI na programování i vy?
Ano, každý den. Rozdíl je v tom, že každou změnu před nasazením kontroluje senior programátor a ručí za ni.
Související články
Audit kódu: kdy si ho objednat a co dostanete
Audit kódu je nezávislý pohled seniora na to, v jakém stavu je váš software. Není to formalita, ale podklad pro rozhodnutí, do čeho investovat a co opravit jako první.…
Číst článek →Konec junior programátorů? Jak AI mění IT firmy
Díváme se na to zevnitř: jsme senioři, kteří s AI asistenty pracují denně. Není to konec juniorů, ale je to konec jedné cesty, kterou se z juniora stával senior.…
Číst článek →Je kód psaný s AI bezpečný? Jak ho kontrolujeme
Krátká odpověď: ano, pokud ho před nasazením zkontroluje zkušený člověk. Delší odpověď je o tom, co přesně je potřeba kontrolovat, protože AI se mýlí jinak než člověk.…
Číst článek →Nová éra začíná
vaším zadáním.
Napište, co potřebujete. Senior se ozve, AI se pustí do práce.