Udvikling af et nyt CMS. Min erfaring med Roo Code, Gemini og Cursor
Til at begynde med vil jeg tale om ChatGPT. Da jeg startede på dette indlæg, gav jeg den arbejdstitlen: "Hvor gode er AI til softwareudvikling".
Jeg forventede, at den ville stille spørgsmål til, hvad jeg ville skrive, men i stedet genererede den et essay på 500 ord med helt opdigtet indhold. Den præsenterede påståede tanker om tre AI-værktøjer, jeg skulle have testet: Roo Code, Gemini og Cursor. Det havde dog ingen relation til mine faktiske erfaringer.
Her er, hvad ChatGPT skrev om hvert værktøj:
Som en der har stor erfaring med at skrive CMS-systemer, besluttede jeg at bruge AI til at udvikle et nyt CMS, der udnytter mine mange år med at bygge websites – fra simple sider til enterprise-løsninger.
Lad os begynde med RooCode. Jeg kunne virkelig godt lide værktøjet og brugte cirka fem timer på at bygge en kodebase i vanilla JavaScript, som ellers ville have taget en uge. Jeg havde en demo-klar version af CMS'et, der kunne renderere flere mock-sider. Men da jeg bad om at konvertere kodebasen til TypeScript, mislykkedes opgraderingen. Havde jeg startet i TypeScript, var det formentlig gået fint.
Derefter skiftede jeg til Gemini, som fik projektet over på TypeScript, og efter fem-seks timer fungerede det meste. Alligevel blev den ved med at cykle opgaver, sandsynligvis på grund af tekniske udfordringer.
I den periode holdt jeg en pause og researchede. Jeg faldt over en video om Cursor. Jeg havde hørt positive ting fra andre udviklere og ville længe gerne prøve det.
Tilbage i Gemini bad jeg om en projektspecifikation, som jeg kunne give videre til en anden AI. Den gav jeg til Cursor og byggede en ny version af CMS'et.
På det tidspunkt havde jeg bygget den samme kode med forskellige AI-værktøjer. Jeg kan varmt anbefale dem – de var virkelig effektive. Agenterne kunne redigere filer, flytte dem og generelt udføre størstedelen af de ændringer, jeg havde brug for. Efter min mening er produktivitetsgevinsten omkring tidoblet. At arbejde konsekvent i ét værktøj gør det også nemmere at formulere præcise ændringer.
Fordi jeg brugte mest tid med Cursor, var der også irriterende ting: Da jeg bad om at oprette en database til at gemme nogle data, satte den primærnøglen som VARCHAR(36) i stedet for UNSIGNED BIGINT. Interessant nok, da jeg spurgte om den bedste måde at gemme en primærnøgle på, ville den skifte til BINARY og skrev to funktioner, der konverterede den ønskede GUID til en numerisk værdi. Cursor har en .cursorrc-fil, hvor man kan angive regler, den følger ved løsninggenerering; den opdagede jeg til sidst efter gentagne fejl.
Da jeg bad om projektdokumentation, skrev den en masse, men meget var forkert — den omtalte mapper, der ikke fandtes.
Vores digitale tidsalder ændrer sig — det er tid at komme ombord. For et år siden ville jeg have beskrevet disse værktøjer som fulde studerende. Nu er de junior-udviklere, man skal holde øje med — og de bliver kun bedre.