Razvoj novog CMS-a. Moje iskustvo s Roo Code, Gemini i Cursor
Počet ću s ChatGPT-om. Kad sam počeo pisati ovaj post, dao sam mu radni naslov: „Koliko su AI dobri za razvoj softvera“.
Očekivao sam da će postavljati pitanja o tome o čemu želim pisati, ali umjesto toga generirao je esej od 500 riječi s potpuno izmišljenim sadržajem. Predstavio je moje navodne misli o tri AI alata koje sam navodno testirao: Roo Code, Gemini i Cursor. Međutim, generirane informacije nisu bile u skladu s mojim stvarnim iskustvima.
Ovako je ChatGPT uokvirio svaki alat:
Budući da imam opsežno iskustvo u pisanju CMS sustava, odlučio sam koristiti AI za razvoj novog CMS-a, koji se temelji na godinama rada — od jednostavnih stranica do enterprise rješenja.
Počnimo s RooCode. Jako mi se svidio alat i proveo sam oko pet sati gradeći kodnu bazu u čistom JavaScriptu, što bi mi inače trajalo tjedan dana. Imao sam demo verziju CMS-a koja je mogla renderirati nekoliko maketa stranica. Ali kad sam zatražio da konvertira kodnu bazu u TypeScript, nadogradnja je propala. Da sam počeo izravno u TypeScriptu, vjerojatno ne bi bilo problema.
Zatim sam prešao na Gemini, koji je uspio migrirati projekt na TypeScript, a nakon pet-šest sati većina koda je radila. Ipak, upao je u cikluse zadataka — vjerojatno zbog tehničkih izazova.
Tijekom tog razdoblja napravio sam pauzu i proveo istraživanje. Naišao sam na video o Cursoru. Već sam čuo dobre stvari od drugih programera i želio sam ga isprobati.
Vratio sam se Geminiu i zamolio ga da napiše specifikaciju projekta koju bih mogao dati drugom AI-u. Tu specifikaciju dao sam Cursoru i izgradio novu verziju CMS-a.
U tom trenutku izgradio sam isti kod s različitim AI alatima. Toplo ih preporučujem — bili su izuzetno učinkoviti. Agenti su mogli uređivati datoteke, premještati ih i općenito izvršavati većinu potrebnih promjena. Po mom mišljenju, oni pružaju oko desetostruko povećanje produktivnosti. A dosljedan rad s jednim alatom pomaže u preciznom formuliranju željenih promjena.
Budući da sam proveo najviše vremena s Cursorom, bilo je i dosadnih stvari: kad sam zatražio da stvori bazu podataka za pohranu nekih podataka, postavio je primarni ključ kao VARCHAR(36) umjesto UNSIGNED BIGINT. Zanimljivo je da je, kad sam pitao za najbolji način pohrane primarnog ključa, želio prijeći na BINARY i napisao dvije funkcije za pretvaranje željenog GUID u numeričku vrijednost. Cursor ima datoteku .cursorrc, gdje možete specificirati pravila koja treba slijediti pri generiranju rješenja; na kraju sam je pronašao nakon što su se iste pogreške ponavljale.
Kada sam zatražio dokumentaciju projekta, napisao je puno, ali mnogo toga bilo je pogrešno — spominjao je direktorije koji nisu postojali.
Naše digitalno doba se mijenja — vrijeme je da uskočite na vlak. Prije godinu dana ove alate bih opisao kao pijane studente. Sada su to junior programeri koje treba nadzirati — i samo će postajati bolji.