Распрацоўка новай CMS. Мой досвед з Roo Code, Gemini і Cursor
Пачну з ChatGPT. Калі я пачаў пісаць гэты пост, я даў яму працоўны загаловак: "Наколькі карысныя ШІ для распрацоўкі праграмнага забеспячэння".
Я чакаў, што ён пачне пытацца, пра што я хачу напісаць, але замест гэтага ён стварыў эсэ на 500 слоў з цалкам выдуманым зместам. Ён прадставіў мае меркаваныя думкі пра тры інструменты ШІ, якія я нібыта тэставаў: Roo Code, Gemini і Cursor. Аднак атрыманыя дадзеныя не мелі нічога агульнага з маім сапраўдным досведам.
Вось як ChatGPT ахарактарызаваў кожны інструмент:
Маючы вялікі досвед стварэння CMS-сістэм, я вырашыў скарыстаць ШІ, каб распрацаваць новы CMS, заснаваны на маіх шматгадовых працах – ад простых старонак да карпаратыўных сайтаў.
Пачнём з RooCode. Мне вельмі спадабалася карыстацца гэтым інструментам, і я правёў каля пяці гадзін, ствараючы кодавую базу на чыстым JavaScript, што звычайна заняло б цэлы тыдзень. У мяне была дэма-версія CMS, якая магла адлюстроўваць некалькі макетных старонак. Але калі я папрасіў перанесці кодавую базу ў TypeScript, міграцыя не атрымалася. Калі б я адразу пачаў у TypeScript, праблемы, хутчэй за ўсё, не было б.
Пасля я пераключыўся на Gemini, які здолеў перанесці праект у TypeScript, і праз пяць-шэсць гадзін большасць кода ўжо працавала. Аднак ён працягваў замыкацца ў цыклах задач – верагодна, з-за тэхнічных цяжкасцяў.
У гэты час я зрабіў перапынак і заняўся даследаваннямі. Я натрапіў на відэа пра Cursor. Я ўжо чуў станоўчыя водгукі ад іншых распрацоўшчыкаў і заўсёды хацеў яго выпрабаваць.
Вярнуўшыся да Gemini, я папрасіў яго скласці спецыфікацыю праекта, якую затым перадаў Cursor і стварыў новую версію CMS.
На гэтым этапе я пабудаваў той жа код, выкарыстоўваючы розныя інструменты ШІ. Я настойліва рэкамендую любы з іх – яны былі надзвычай эфектыўнымі. Агенты маглі рэдагаваць файлы, перамяшчаць іх і ўвогуле выконваць большасць змен, якія я хацеў. На мой погляд, рост прадукцыйнасці ад выкарыстання гэтых інструментаў складае прыкладна дзесяць разоў. Больш за тое, паслядоўнае выкарыстанне аднаго інструмента, хутчэй за ўсё, дапамагае дакладней сфармуляваць патрэбныя змены.
Паколькі я правёў больш за ўсё часу з Cursor, былі і непрыемныя моманты: калі я папрасіў яго стварыць базу дадзеных, ён задаў першасны ключ як VARCHAR(36) замест UNSIGNED BIGINT. Цікава, што калі я запытаўся пра найлепшы спосаб захоўвання ключа, ён захацеў змяніць яго на BINARY і напісаў дзве функцыі, каб ператварыць патрэбны GUID у лікавае значэнне. У Cursor ёсць файл .cursorrc, дзе можна вызначаць правілы – я знайшоў яго, калі тыя ж памылкі паўтараліся зноў і зноў.
Калі я папрасіў яго стварыць дакументацыю па праекце, ён напісаў шмат, але большасць была няправільнай – гаварыў пра каталогі, якіх не існавала.
Наша лічбавая эпоха змяняецца – час далучыцца. Год таму я б апісаў гэтыя інструменты як п'яных студэнтаў. Цяпер гэта маладыя праграмісты, за якімі трэба сачыць – але яны будуць толькі паляпшацца.