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!