Uuden CMS:n kehittäminen. Kokemukseni Roo Codesta, Geministä ja Cursorista
Aloitetaan ChatGPT:stä. Kun aloin kirjoittaa tätä postausta, annoin sille artikkelin työnimen: ”Kuinka hyviä AI:t ovat ohjelmistokehitykseen”.
Odotin kysymyksiä siitä, mitä halusin kirjoittaa, mutta sen sijaan se tuotti noin 500 sanan esseen täysin keksitystä sisällöstä. Siinä esitettiin väitettyjä ajatuksiani kolmesta kokeilemastani AI-työkalusta: Roo Code, Gemini ja Cursor. Tuotettu tieto ei kuitenkaan vastannut todellisia kokemuksiani.
Tässä, miten ChatGPT luokitteli työkalut:
Olen kirjoittanut CMS-järjestelmiä pitkään ja päätin hyödyntää AI:ta uuden CMS:n kehittämiseen, nojautuen vuosien kokemukseeni yrityssivustojen rakentamisesta yksinkertaisista sivuista aina enterprise-tason ratkaisuihin.
Aloitetaan RooCodella. Pidin työkalusta paljon ja rakensin noin viidessä tunnissa vanilla-JavaScriptillä koodipohjan, jonka tekeminen veisi normaalisti viikon. Sain aikaan demo-version CMS:stä, joka renderöi useita mallisivuja. Kun pyysin muuntamaan koodipohjan TypeScriptiksi, päivitys kuitenkin epäonnistui. Jos olisin aloittanut suoraan TypeScriptillä, ongelmaa tuskin olisi tullut.
Seuraavaksi siirryin Geminiin, joka sai projektin onnistuneesti TypeScriptille ja viiden–kuuden tunnin kuluttua suurin osa koodista toimi. Silti se jäi kiertämään tehtäviä — luultavasti teknisten haasteiden vuoksi.
Tässä vaiheessa pidin tauon ja tein taustatyötä. Törmäsin videoon Cursorista. Olin kuullut siitä aiemmin hyviä kommentteja ja aikonut testata sen.
Palattuani Geminiin pyysin sitä laatimaan projektista spesifikaation, jonka voisin antaa toiselle AI:lle. Annoin dokumentin Cursorille ja rakensin uuden CMS-version.
Siinä kohtaa olin rakentanut saman koodin eri AI-työkaluilla. Voin suositella mitä tahansa näistä — ne olivat erittäin tehokkaita. Agentit pystyivät muokkaamaan tiedostoja, siirtelemään niitä ja yleisesti tekemään suurimman osan tarvitsemistani muutoksista. Arvioni mukaan tuottavuus kasvaa noin kymmenkertaiseksi. Lisäksi yhden työkalun johdonmukainen käyttö auttaa muotoilemaan muutospyynnöt täsmällisesti.
Koska vietin eniten aikaa Cursorin kanssa, esiin nousi myös ärsyttäviä juttuja: kun pyysin luomaan tietokannan datan tallentamiseen, se teki primääriavaimeksi VARCHAR(36) eikä UNSIGNED BIGINT. Mielenkiintoista kyllä, kun kysyin paremmasta tavasta tallentaa primääriavain, se halusi vaihtaa BINARY-tyyppiin ja kirjoitti kaksi funktiota, joilla haluttu GUID muunnettiin numeeriseksi arvoksi. Cursorilla on .cursorrc-tiedosto, jossa voi määritellä sääntöjä ratkaisujen generointiin; löysin sen lopulta, kun samat virheet toistuivat.
Kun pyysin projektidokumentaatiota, se kirjoitti paljon, mutta paljon oli väärin — se puhui hakemistoista, joita ei ollut.
Digiaikamme muuttuu — on aika hypätä kyytiin. Vuosi sitten olisin kuvannut näitä työkaluja humalaisiksi opiskelijoiksi. Nyt ne ovat juniorikehittäjiä, joita pitää pitää silmällä — ja ne vain paranevat.