Разработване на нов CMS. Моят опит с Roo Code, Gemini и Cursor
Ще започна с ChatGPT. Когато започнах да пиша тази публикация, му дадох работно заглавие: „Колко добри са AI за разработка на софтуер“.
Очаквах да зададе въпроси за това, което искам да напиша, но вместо това генерира есе от 500 думи с напълно измислено съдържание. Представи предполагаемите ми мисли за три AI инструмента, които уж съм тествал: Roo Code, Gemini и Cursor. Въпреки това генерираната информация не съответстваше на реалния ми опит.
Ето как ChatGPT рамкира всеки инструмент:
Тъй като имам обширен опит в писането на CMS системи, реших да използвам AI за разработване на нов CMS, базиран на години работа — от прости страници до корпоративни решения.
Нека започнем с RooCode. Много ми хареса инструментът и прекарах около пет часа в изграждане на кодова база в чист JavaScript, която иначе би ми отнела седмица. Имах демо версия на CMS, която можеше да рендира няколко макетни страници. Но когато поисках да конвертира кодовата база в TypeScript, ъпгрейдът се провали. Ако бях започнал директно в TypeScript, вероятно нямаше да има проблем.
След това преминах към Gemini, което успя да мигрира проекта към TypeScript и след пет-шест часа по-голямата част от кода работеше. Въпреки това той навлезе в цикли на задачи — вероятно поради технически предизвикателства.
В този период направих пауза и направих проучване. Натъкнах се на видео за Cursor. Вече бях чувал добри неща от други разработчици и исках да го изпробвам.
Върнах се към Gemini и го помолих да напише спецификация на проекта, която да мога да дам на друг AI. Тази спецификация дадох на Cursor и изградих нова версия на CMS.
В този момент бях изградил същия код с различни AI инструменти. Препоръчвам ги горещо — те бяха изключително ефективни. Агентите можеха да редактират файлове, да ги преместват и като цяло да извършват повечето от необходимите ми промени. Според мен те осигуряват около десетократно увеличение на производителността. И последователната работа с един инструмент помага за точно формулиране на желаните промени.
Тъй като прекарах най-много време с Cursor, имаше и досадни неща: когато поисках да създаде база данни за съхранение на някои данни, той зададе първичния ключ като VARCHAR(36) вместо UNSIGNED BIGINT. Интересното е, че когато попитах за най-добрия начин за съхранение на първичен ключ, той искаше да премине към BINARY и написа две функции за конвертиране на желания GUID в числова стойност. Cursor има файл .cursorrc, където можете да зададете правила, които да следва при генериране на решения; намерих го в крайна сметка, след като същите грешки се повтаряха.
Когато поисках документация за проекта, той нап иса много, но много от нещата бяха грешни — говореше за директории, които не съществуваха.
Нашата дигитална епоха се променя — време е да се качите на влака. Преди година бих описал тези инструменти като пияни студенти. Сега са младши разработчици, които трябва да наблюдавате — и ще стават все по-добри.