Utveckla ett nytt CMS. Mina erfarenheter av Roo Code, Gemini och Cursor
För att börja vill jag prata om ChatGPT. När jag började skriva det här inlägget gav jag det den planerade artikelrubriken: ”Hur bra är AI för programvaruutveckling”.
Jag trodde att den skulle börja ställa frågor om vad jag ville skriva, men i stället producerade den ett 500-ords-essä med helt påhittat innehåll. Den presenterade mina påstådda tankar om tre AI-verktyg jag testat: Roo Code, Gemini och Cursor. Informationen hade dock inget att göra med mina faktiska erfarenheter.
Så här kategoriserade ChatGPT varje verktyg:
Jag har lång erfarenhet av att bygga CMS-system och bestämde mig för att använda AI för att utveckla ett nytt CMS som drar nytta av mina år med att skapa webbplatser, från enkla sidor till företagssajter.
Låt oss börja med RooCode. Jag tyckte verkligen om att använda verktyget och lade cirka fem timmar på att bygga en kodbas i vanilla-JavaScript som annars hade tagit en vecka. Jag hade en demoversion som kunde rendera flera mock-sidor. Men när jag bad om att konvertera kodbasen till TypeScript misslyckades uppgraderingen. Hade jag börjat i TypeScript från start hade det troligen löst sig.
Därefter bytte jag till Gemini, som lyckades migrera projektet till TypeScript och efter fem–sex timmar fungerade det mesta. Ändå fastnade den i uppgiftsloopar, sannolikt på grund av tekniska utmaningar.
Under tiden tog jag en paus och gjorde lite research. Då hittade jag en video om Cursor. Jag hade hört positiva saker från andra utvecklare och tänkt testa det.
Tillbaka i Gemini bad jag om en projektspecifikation som jag kunde ge till en annan AI. Den gav jag till Cursor och byggde en ny version av CMS:et.
Vid det laget hade jag byggt samma kod med olika AI-verktyg. Jag kan varmt rekommendera vilket som helst – de var mycket effektiva. Agenterna kunde redigera filer, flytta dem och i stort sett utföra de flesta ändringar jag behövde. Jag uppskattar produktivitetslyftet till ungefär tio gånger. Att arbeta konsekvent med ett verktyg gör det också lättare att formulera exakt vilka ändringar jag vill ha.
Eftersom jag tillbringade mest tid med Cursor fanns det även irritationsmoment: när jag bad om att skapa en databas för vissa data gjorde den primärnyckeln som VARCHAR(36) i stället för UNSIGNED BIGINT. Intressant nog, när jag frågade om bästa sättet att lagra en primärnyckel ville den byta till BINARY och skrev två funktioner som konverterade den GUID den ville använda till ett numeriskt värde. Cursor har en .cursorrc-fil där man kan ange regler som används när lösningar genereras; den hittade jag till slut efter att samma fel återkom.
När jag bad om projektdokumentation skrev den mycket, men mycket var fel – den nämnde kataloger som inte fanns.
Vår digitala era förändras – det är dags att hoppa på tåget. För ett år sedan hade jag beskrivit de här verktygen som berusade studenter. Nu är de juniorutvecklare som man behöver hålla ett öga på – och de blir bara bättre.