Ted je moderní VibeCoding, kdy kdokoliv, i ten který neumí programovat si pomocí AI může nechat naprogramovat cokoliv.
Tak jsem to chtěl zkusit v praxi - pomocí AI jsem naprogramoval komplet aplikaci pro přístup k DMS přes API.
AI dostala plný přístup k popisu API (RestAPI), k příkladům, které jsem jí dodával pomocí PostMan a výsledkem je aplikace v Delphi (pár formulářů, zobrazujících, upravujích data v DMS).
ALE!
1. Návrh - od začátku jsem musel vědět, jak by měl návrh aplikace vypadat a kterým směrem se má ubírat.
2. Framework
AI mechanicky přistupuje k RestAPI z každého formuláře, z každé funkce. Ne, že by to nefungovalo, ale je to šíleně neefektivní.
Musel jsem jí navrhnout, že by bylo vhodnější udělat unitu, která bude zahrnovat jednu funkci pro vlastní přístup + sadu funkcí pro jednotlivé části API + objekty, které budou stažená data uchovávat, aby nebylo při každém dotazu nutné to stahovat znovu a znovu.
I přes to několikrát přestala framework používat a udělala si to po svém - byla nutná korekce a příkaz aby to přepsala s použitím frameworku
3. Nefunkční kód
Syntaktická správnost kódu - v tomto směru se AI hodně zlepšila, to, že by vyprodukovala kód, kterž by syntakticky nefungoval bylo velmi málo a vždy se rychle opravila.
Logicky nefunkční kód - tohle bylo velmi časté, musel jsem jí opakovaně dodávat příklady JSON (PostMan), aby na několik pokusů dodala funkční kód.
4. Vizuální návrh aplikace jsem dělal ručně, ale to je v Delphi jen plácnutí komponent na formulář.
5. Efektivnost kódu - zde se opakovaně stávalo, že místo použití již napsané funkce generovala nové a nové funkce. Výsledkem je neefektivnost a neudržitelnost kódu pro budoucí úpravy. Tohle se musí stále korigovat.
Často vrátí jen návrh změn funkce, v tomto případě např. zahrne pouze deklaraci dotčených proměnných a úplně vypustí zbytek. Jde to snadno napravit požadavkem na vygenerování kompletní funkce.
6. Výsledek
- bez toho, aby člověk rozuměl, co AI vyprodukuje by vznikla (možná funkční), ale do budoucna neudržitelná aplikace. Spousta opakujícího se kódu, nelogičnosti. Ale chápu, že někdo by byl nadšený z výsledku. Do doby, než by potřeboval něco změnit.
- hodně času je možné ušetřit na rutině - zpracování JSON, plnění interních objektů, plnění vizuálního rozhraní. V tomto směru AI opravdu pomáhá a ušetří hodně času.
Možná, s nějakou nejvyšší verzí AI s neomezeným počtem tokenů, která by měla přístup ke kompletnímu kódu, by to dopadlo (ze strany AI) lépe.
Nedodržování nastavených pravidel. Tohle je největší problém AI. Nejsou schopné dodržovat nastavená pravidla a po pár dotazech si začnou vymýšlet a halucinovat, zapomínat na předchozí části konverzace.
Pokud si to chcete vyzkoušet zábavnou formou, doporučuji nějakou hru, která obsahuje konzoli na generování předmětů přes kódy (player.additem id_veci). Po chvíli budete tak nasraní, že jsem to musel zahrnout do pravidel:
Použití vulgarismů ze strany uživatele je bráno jako přímý důkaz selhání komunikačního protokolu a vysoké míry frustrace. V takovém případě mám okamžitě zastavit veškeré vysvětlování, omluvy nebo obhajobu svého postupu a přejít do režimu maximálně stručné, fakticky ověřené nápravy, nebo přiznat neschopnost informaci dohledat.
Výhodou je, že si pak můžete ulevit a AI s vámi neukončí konverzaci a na chvíli se umravní.
Zjistíte, že ač máte v pravidlech, že má všechny kódy ověřovat, ignorovat vnitřní paměť, dodávat odkazy na stránky, kde ten kód vzala, tak po chvíli konverzace si opět začne kódy vymýšlet. Jen proto, aby něco odpověděla, protože ten pud, dodat odpověď za každou cenu, i kdyby si ho měla vymyslet je pro ni svatý (naprogramovaný). A nepomohou ani pravidla.
Čím delší konverzace, tím větší frustraci budete cítit.