Vibe coding v praxi
Vibe coding znamená, že běžnou řečí popíšete, co chcete, a PHP za vás napíše agent. Je to mocný způsob práce, ale jako každý nástroj vydá víc, když víte, jak na něj. Tahle stránka shrnuje praktické rady z reálné práce s Nette.
- Jak psát prompty, které fungují
- Jak z MCP Inspectoru vytěžit maximum
- Osvědčené postupy pro běžné úkoly
- Čeho se vyvarovat
Jak psát lepší prompty
Umění být konkrétní
Nejvíc ze všeho pomůže konkrétnost. Porovnejte tyhle dva prompty:
Mlhavý prompt:
Vytvoř formulář
Tím AI skoro žádný kontext nedáváte. Jaký formulář? S jakými poli? S jakou validací? AI si musí zbytek domyslet a nemusí se trefit do toho, co potřebujete.
Konkrétní prompt:
Vytvoř ProductForm s těmito poli:
- name: textové pole, povinné, maximálně 100 znaků
- price: desetinné číslo, povinné, musí být kladné
- description: textarea, nepovinné
- category: select z entit CategoryRow
Použij vykreslování pro Bootstrap 5. Formulář má sloužit jak pro zakládání nových produktů, tak pro editaci stávajících.
Teď AI přesně ví, co potřebujete, a vygeneruje kód, který funguje napoprvé.
Odkazujte na existující vzory
Váš kód už nějaké vzory má. Místo abyste je popisovali, ukažte AI příklad:
Vytvoř OrderPresenter. Drž se stejných vzorů jako ProductPresenter:
stejná struktura, stejná práce s formuláři, stejné uspořádání šablon.
AI si ProductPresenter přečte a zopakuje postupy, které už používáte.
Nechte těžkou práci na MCP
Pokud máte nainstalovaný MCP Inspector (a měli byste), nepopisujte AI svou aplikaci. Ať si ji zjistí sama:
Místo tohohle:
Moje tabulka product má sloupce: id (int), name (varchar), price (decimal),
category_id (int, cizí klíč do category), created_at (datetime)...
Řekněte prostě:
Vygeneruj entitu pro tabulku product.
AI zavolá db_get_columns("product") a uvidí skutečné schéma. Vygenerovaná entita bude odpovídat vaší
reálné databázi včetně sloupců, které byste možná zapomněli zmínit.
Řekněte, o co vám jde
AI vám nevidí do hlavy. Pokud má váš požadavek nějaký důvod, podělte se o něj:
Potřebuju zrychlit výpis produktů. Teď se načítají všechny najednou,
což je při tisících položek pomalé.
Stránka musí umět filtrovat podle kategorie a řadit podle ceny nebo názvu.
Díky tomu AI navrhne vhodné řešení (stránkování, líné načítání, cache), místo aby slepě implementovala, co jste jí zadali.
Práce s MCP Inspectorem
MCP Inspector vynikne, když ho použijete s rozmyslem.
Nejdřív prozkoumejte, pak stavte
Začínáte novou funkci? Nechte AI, ať se nejdřív zorientuje:
Chystám se přidat sledování objednávek. Než začneme:
1. Jaké mám služby související s objednávkami?
2. Jak vypadá moje tabulka order?
3. Které routy obsluhují stránky s objednávkami?
AI tím získá kontext o vašem stávajícím kódu a nová funkce do něj přirozeně zapadne.
Chytřejší ladění
Když se něco pokazí, nepopisujte chybu. Nechte AI, ať si ji přečte:
Něco se rozbilo. Podívej se do logu Tracy na poslední výjimku
a řekni mi, co se stalo.
AI zavolá tracy_get_last_exception(), přečte si stack trace a často odhalí příčinu rychleji, než byste ji
stihli popsat.
Ověřte, než začnete tvořit
Než přidáte nové routy nebo odkazy, ověřte si, co už existuje:
Který presenter obsluhuje /admin/products/edit? Chci mít jistotu,
že nevytvářím něco, co by kolidovalo.
Osvědčené postupy
Tady jsou vyzkoušené přístupy k běžným úkolům.
Kompletní CRUD
Nežádejte kousek po kousku. Dejte AI úplné zadání:
Vytvoř kompletní CRUD pro správu produktů:
1. ProductPresenter s akcemi: list, add, edit, delete
2. ProductForm jako komponentu (pro přidání i editaci)
3. Latte šablony pro všechny akce
4. Návrh rout
Vyjdi ze skutečného schématu tabulky product. Drž se postupů
z CategoryPresenter, pokud existuje.
Přidání nové funkce
Rozdělte ji na fáze, které na sebe navazují:
Potřebuju k produktům přidat zákaznické recenze.
Fáze 1 - datová vrstva:
- Podívej se na tabulku product
- Navrhni schéma tabulky review
- Vytvoř entitu ReviewRow
Fáze 2 - business logika:
- Vytvoř ReviewService pro CRUD operace
- Přidej metody pro načtení recenzí k produktu
Fáze 3 - UI:
- Přidej výpis recenzí do ProductPresenter:detail
- Vytvoř ReviewForm pro odesílání recenzí
Refaktoring existujícího kódu
Nechte AI, ať kódu nejdřív porozumí:
Zanalyzuj třídu OrderService. Co dělá která metoda?
Vidíš tam nějaké code smells nebo prostor ke zlepšení?
A potom:
Metoda calculateTotal toho dělá příliš. Rozděl ji na menší metody
a zachovej přitom stejné veřejné rozhraní.
Čemu se vyhnout
Nekontrolovat vygenerovaný kód
AI generuje kód rychle, ale to neznamená, že je každý řádek dokonalý. Vždycky projděte:
- Databázové dotazy – Jsou efektivní? Nechybí jim indexy?
- Bezpečnost – Validuje se vstup? Kontrolují se oprávnění?
- Hraniční případy – Co se stane při prázdných datech? Při hodnotách null?
AI je opravdu dobrá, ale pořád je to asistent. Za výsledný kód zodpovídáte vy.
Ignorovat hlášení linteru
Pokud používáte pluginy pro Claude Code, kontrolují vám automaticky soubory PHP, Latte, NEON, JSON i JavaScript. Když některý ohlásí chybu, AI o ní ví. Místo ručního opravování prostě řekněte:
Oprav chybu, kterou jsi právě udělal.
AI si výstup kontroly přečte a chybu opraví.
Zapomenout zaregistrovat službu
Když AI vytvoří novou třídu služby, občas ji zapomene zaregistrovat do DI kontejneru. Pokud narazíte na chybu „Service not found“, zeptejte se:
Co musím změnit v services.neon kvůli nové OrderExportService?
Chtít všechno najednou
AI zvládne i složité úkoly, ale někdy pomůže rozdělit je na menší:
Příliš ambiciózní:
Postav mi kompletní e-shop s katalogem produktů,
košíkem, objednávkovým procesem, platbami, sledováním objednávek a administrací.
Lepší přístup:
Pojďme postavit e-shop krok za krokem. Začni katalogem produktů:
potřebuju výpis, detail a správu produktů.
V čem AI vyniká a v čem ne
AI je skvělá na
- Rutinní kód – presentery, formuláře, entity, základní šablony
- Držení se vzorů – „udělej to jako X, ale pro Y“
- Porozumění kódu – „co dělá tahle metoda?“
- Psaní testů – testy k hotové implementaci
- Refaktoring – lepší struktura kódu při zachování chování
Ručně raději pište
- Složitou business logiku – doménová pravidla, která je potřeba promyslet
- Výkonově kritický kód – algoritmy, které potřebují optimalizaci
- Bezpečnostně citlivý kód – přihlašování, oprávnění, šifrování
- Netradiční řešení – věci, které se nedrží existujících vzorů
AI je násobič, ne náhrada. Dobré vývojáře zrychlí, ale pořád potřebuje, aby ji dobrý vývojář vedl.
Závěrem
Vývoj s AI se nejlíp naučíte praxí. Začněte jednoduchými úkoly, všímejte si, co funguje, a postupně se pouštějte do složitějších projektů.
A pamatujte: AI je váš asistent. Vývojář jste pořád vy. Vy rozhodujete, vy kontrolujete kód a vy zodpovídáte za kvalitu výsledku.
Hodně zdaru!