Vývoj nového CMS. Moje skúsenosti s Roo Code, Gemini a Cursor
Na úvod by som rád hovoril o ChatGPT. Keď som začal písať tento príspevok, dal som mu pracovný názov: „Aké dobré sú AI pre vývoj softvéru“.
Čakal som otázky k tomu, o čom chcem písať, no namiesto toho vznikla 500-slovná esej s úplne vymysleným obsahom. Prezentovala moje údajné myšlienky o troch AI nástrojoch, ktoré som mal testovať: Roo Code, Gemini a Cursor. Vygenerované informácie však s mojimi reálnymi skúsenosťami nesúviseli.
Takto ChatGPT zarámcoval jednotlivé nástroje:
Keďže mám rozsiahle skúsenosti s písaním CMS systémov, rozhodol som sa využiť AI na vývoj nového CMS, stavajúc na rokoch práce — od jednoduchých stránok po enterprise riešenia.
Začnime s RooCode. Práca s ním ma bavila a približne za päť hodín som v čistom JavaScripte postavil kódovú bázu, ktorá by mi inak trvala týždeň. Mal som demo verziu CMS, ktorá vedela renderovať viacero maketových stránok. Keď som však požiadal o konverziu na TypeScript, upgrade zlyhal. Keby som začal rovno v TypeScripte, problém by sa pravdepodobne neobjavil.
Následne som prešiel na Gemini, ktorému sa podarilo upraviť projekt na TypeScript a po piatich až šiestich hodinách väčšina kódu fungovala. Napriek tomu však padal do cyklov úloh — zrejme kvôli technickým prekážkam.
V tom čase som si dal pauzu a spravil si rešerš. Narazil som na video o Cursor. Od iných vývojárov som mal pozitívne ohlasy a chcel som ho vyskúšať.
Po návrate ku Gemini som ho požiadal, aby spísal špecifikáciu projektu, ktorú by som mohol dať inej AI. Túto špecifikáciu som potom dal Cursoru a postavil novú verziu CMS.
V tej chvíli som mal ten istý kód vytvorený rôznymi AI nástrojmi. Každý z nich môžem odporučiť — boli veľmi efektívne. Agenti vedeli upravovať súbory, presúvať ich a vo všeobecnosti vykonávať väčšinu zmien, ktoré som potreboval. Podľa mňa prinášajú približne desaťnásobné zvýšenie produktivity. A konzistentná práca s jedným nástrojom mi zlepšuje presnosť pri formulovaní požadovaných zmien.
Keďže najviac času som strávil s Cursorem, boli aj otravné momenty: keď som požiadal o vytvorenie databázy, urobil primárny kľúč ako VARCHAR(36) namiesto UNSIGNED BIGINT. Zaujímavé je, že pri otázke na najlepší spôsob uloženia primárneho kľúča chcel prejsť na BINARY a napísal dve funkcie na konverziu požadovaného GUID na číselnú hodnotu. Cursor má súbor .cursorrc, v ktorom sa dajú zadať pravidlá pre generovanie riešení; objavil som ho po tom, čo opakoval tie isté chyby.
Keď som požiadal o projektovú dokumentáciu, napísal toho veľa, no veľa bolo nesprávne — spomínal adresáre, ktoré neexistovali.
Naša digitálna doba sa mení — je čas naskočiť. Pred rokom by som tieto nástroje nazval opitými študentmi. Teraz sú to junior developeri, na ktorých treba dohliadať — a budú sa len zlepšovať.