Коли ШІ пише код, але забуває перевірити, чи він працює: Наш новий союзник у самолікуванні
Технології – як захопливе кіно, з кожним днем стають все більш вражаючими. Нещодавно ми дивувалися, як комп’ютер може скласти речення, а сьогодні він створює цілі вебсайти, розробляє дизайн та навіть допомагає в складних наукових дослідженнях. Штучний інтелект у кодуванні – це справжній прорив. Однак, як показує мій більш ніж двадцятирічний досвід роботи в цій сфері, за кожним дивом ховається своя реальність.
Мій знайомий, Іван, досвідчений розробник, активно експериментує з AI-асистентами у кодуванні. Нещодавно він поділився зі мною спостереженням: “Лілю, ці інструменти пишуть код з неймовірною швидкістю. Але, на жаль, часто забувають перевірити, чи все це взагалі працює! Це як запросити шеф-кухаря, який приготував найвишуканішу страву, але забув додати сіль”.
Іван мав рацію. Ми захоплюємося швидкістю генерації коду, не завжди приділяючи належну увагу важливому аспекту роботи розробника – перевірці працездатності, безпеки та відповідності вимогам. І коли мова йде про AI, ця відповідальність все ще лежить на нас. Але що, якби ми могли частково делегувати це завдання самому AI? Що, якби він міг самостійно перевіряти свою роботу та виправляти помилки до того, як вони потраплять до нас? Звучить як фантастика? У моєму практичному досвіді це вже більш ніж реальність.
У цій статті я поділюся з вами тим, як Іван, витративши сотні годин на експерименти, знайшов спосіб “навчити” AI самостійно перевіряти та виправляти свій код. Це не магічне заклинання, а продуманий, багатоетапний процес, який я хочу вам продемонструвати. Це як розробка рецепта для ідеальної страви, де кожен інгредієнт – це крок у перевірці, а кінцевий результат – це функціональний продукт, а не сировина.
Пройдімо цим шляхом разом, крок за кроком, і побачимо, як ми можемо перетворити AI-помічників з генераторів коду на надійних співробітників, які ефективно працюють над результатом. Готові? Тоді вперед!
Розділ 1: Самолікуючий код: Чому це не просто черговий тренд
Уявіть собі: ви працюєте над новим проєктом, і для його реалізації необхідний великий обсяг коду. Ви звертаєтесь до свого AI-асистента, задаєте параметри, і за лічені хвилини отримуєте десятки або навіть сотні рядків готового коду. Перша реакція – захоплення! Це економія часу, це дивовижно! Але потім починається найцікавіше (і найважливіша частина) – тестування.
Саме тут ми стикаємось з реаліями. AI генерує код з блискавичною швидкістю, проте йому ще далеко до статусу справжнього “самокритика”. Він не завжди може зрозуміти, як саме користувач буде взаємодіяти з його роботою, які неочікувані сценарії можуть виникнути, чи всі елементи інтерфейсу є дійсно зручними. Це трохи нагадує людину, яка вперше пече тістечка: вона може вміти читати рецепт, але не завжди знає, скільки потрібно додати цукру або як саме має бути витримана температура.
Чому це так важливо? З мого досвіду, відповідальність за будь-який код – незалежно від того, написаний він людиною чи згенерований AI – лежить на розробнику. Ми не можемо просто махнути рукою і сказати: “Це AI винен!”. Нам потрібно бути впевненими, що наш додаток працює бездоганно. Для цього, як сказав мені Іван, нам потрібен “самолікуючий” AI. Не в сенсі повної автономності, а у здатності максимально підготувати код до нашої фінальної перевірки.
Іван провів сотні годин, тестуючи різні підходи, експериментуючи з командами, створюючи для AI чіткі рамки. Він розробив те, що називає “самолікуючим AI-алгоритмом для написання коду”. Це не просто одна команда, а ціла система, яка проходить через кілька етапів перевірки, аналізуючи код з різних сторін – як користувач, як аналітик бази даних, як інспектор коду.
“Уявіть, що ви будуєте будинок, – пояснював Іван, – і вам важливо, щоб він був міцним і стійким. Ви наймаєте команду. Вони швидко кладуть цеглу. Але ви ж не просто спостерігаєте за процесом, а запрошуєте інженера, який перевіряє міцність фундаменту, правильність зведення стін, надійність покрівлі. Так само і з AI. Ми даємо йому можливість пройти всі ці перевірки самостійно, ще до того, як структура буде здана в експлуатацію”.
Найкраще те, що ця система – досить універсальна. Вона ефективно працює з будь-яким кодом з фронтендом. І головне – ви можете взяти її і почати використовувати вже зараз, не чекаючи, поки хтось там “згори” її впровадить. Це інструмент, який дозволяє нам, розробникам, полегшити собі життя і отримати більш якісний результат.
Варто знати:
AI-асистенти в кодуванні генерують код надзвичайно швидко. Це їхня суперсила. Але саме ця швидкість створює проблему: нам, людям, стає майже неможливо встигати за перевіркою. Ось чому впровадження систем самовалідації є таким важливим. Досвід показує, що без цього якість коду може страждати.
Розділ 2: Шість кроків до ідеалу: Як працює магія самоперевірки
Отже, як виглядає цей “самолікуючий” процес на практиці? Іван упакував все це в одну команду, яку можна запустити на будь-якому проєкті з фронтендом. Давайте подивимось на цю інструкцію, розклавши її на шість основних етапів. Це як розкласти складний рецепт у приготуванні борщу на прості кроки: підготовка інгредієнтів, варіння бульйону, додавання засмажки тощо.
Крок 0: Підготовка (Pre-requisite Checks)
Перш ніж занурюватись у світ коду, система здійснює ряд перевірок. Це як переконатися, що у вас є всі необхідні інгредієнти та посуд перед приготуванням.
- Наявність фронтенду: Це ключовий фактор. Система використовує інструменти для автоматизації браузера, щоб “відчути” додаток так, як це робить реальний користувач. Якщо у вас є тільки бекенд – цей рецепт не підійде, але Іван планує розробити окремий сценарій для таких випадків.
- Операційна система: Якщо ви працюєте на Windows, то можливі проблеми з роботою певних інструментів (Verscell agent browser CLI), але це легко вирішується за допомогою WSL (Windows Subsystem for Linux), що Іван успішно використав у власній роботі.
Якщо всі умови виконано, ми готові до головної “магії”.
Крок 1: Дослідження (Research Phase)
Це найбільш творчий етап. AI має зануритися у ваш проєкт. Уявіть, що він – ваш новий співробітник, який прийшов на роботу і має швидко зрозуміти загальний контекст.
- Розуміння сценаріїв користувача: Які основні сценарії? Що людина робить, коли заходить на сайт? Це як розпитати Івана: “Як користувачі використовують той чи інший функціонал? Вони реєструються, створюють облікові записи, додають нові посилання, чи щось інше?”.
- Аналіз бази даних: Як зберігаються дані? Яка їхня структура? Уявіть, що це як роздивитися вміст комори: де лежать крупи, де спеції, як все організовано, щоб потім знати, що і де шукати.
- Попередній огляд коду (Code Review): Ще до основного тестування, AI проводить попередній огляд коду, виявляючи потенційні проблеми або логічні помилки. Це як досвідчений бухгалтер, який перед початком аудиту переглядає первинні документи.
Ці три підзадачі виконуються паралельно, що значно прискорює процес “знайомства” AI з вашим проєктом. Результати їх роботи збираються в єдиний контекст, який потім використовує основний AI-агент.
Крок 2: Запуск додатку та формування списку завдань
Тепер AI готовий “оживити” ваш додаток. Він запускає dev-сервер та отримує доступ до вашого вебсайту. Потім, спираючись на інформацію, зібрану на попередньому етапі, він формує список конкретних завдань – “user journeys”, тобто шляхів користувача. Це може бути: “вхід в систему”, “редагування профілю”, “створення нового посилання”.
Крок 3: Повноцінне тестування (Full End-to-End Testing)
Це серце нашої системи. AI проходить згідно з складеним списком завдань, виконуючи кожне з них:
- Навігація по сайту: Використовуючи інструменти автоматизації браузера, імітуючи дії користувача.
- Взаємодія з базою даних: Перевірка коректності створення, оновлення та видалення даних.
- Створення знімків екрану: Щоб візуально перевіряти, як виглядає інтерфейс. До того ж, AI здатний аналізувати зображення, щоб переконатися, що все виглядає відповідно до очікувань.
Уявіть, що AI одночасно є користувачем, який заповнює форму, та працівником складу, який здійснює контроль за правильною обробкою замовлень.
Крок 4: Самолікування (Bug Fixing Loop)
Якщо під час виконання якогось завдання AI виявляє критичну проблему, яка повністю блокує його виконання, він не просто зупиняється. Він намагається виправити код, повторно запускає тести, використовує нові знімки екрану, і продовжує доти, доки конкретне завдання не буде успішно завершене.
Важливий момент: AI не виправляє незначні дефекти. Він фокусується лише на найбільш серйозних “блокерах”. Для всіх інших, менш критичних проблем, він підготує звіт, щоб ви разом з ним визначили, що робити далі. Це як коли ви ремонтуєте автомобіль: спочатку усуваєте несправності, які заважають його руху, а вже потім займаєтесь незначними пошкодженнями.
Крок 5: Перевірка адаптивності (Responsive Testing)
Після виконання основних завдань, AI робить короткий огляд сторінок, перевіряючи, як додаток виглядає на різних пристроях (мобільний, планшет, десктоп). Це як швидка перевірка, чи відкриваються всі вікна та чи нічого не випадає.
Крок 6: Звіт (Reporting)
Фінал! AI генерує детальний звіт. Він чітко вказує:
- Що було виправлено.
- Які проблеми залишилися.
- Що саме перевірялося.
Додатково, система може створити окремий Markdown-звіт, який містить всю цю інформацію, а також усі зроблені скріншоти. Це дозволяє вам отримати повну картину та швидко визначити, що зробив AI, а де потрібна ваша увага.
Чого я особисто уникаю…
Спочатку я думав, що AI повинен виправляти абсолютно все. Це призвело до того, що він почав “гратися” з кодом, виправляючи незначні речі, і втрачав фокус на головному. Тому я навчився обмежувати його лише критичними помилками. Це як вчити дитину робити прибирання: спочатку – прибрати іграшки, а вже потім – пилососити.
Розділ 3: Коли ваш код нагадує домашній борщ: Кулінарні аспекти AI-валідації
Знаєте, як готується справжній український борщ? Це не просто зварити овочі. Це ціла філософія: правильна послідовність, баланс смаків, секретні інгредієнти. Іноді здається, що AI-алгоритми – це щось настільки складне, що краще не чіпати. Але насправді, багато з них працюють за принципами, які ми використовуємо щодня.
Машинне навчання = Вчимося готувати як мама
AI-асистент, який пише код, часто використовує машинне навчання. Це нагадує те, як дитина вчиться готувати борщ, спостерігаючи за мамою. Вона бачить, як мама нарізає овочі, як додає спеції, як варить бульйон. З часом, дитина починає розуміти залежності: якщо додати забагато буряка, буде надто солодко, якщо мало капусти – не буде того самого смаку.
Так само і AI: він “дивиться” на величезну кількість коду (як мама дивиться на сотні рецептів), вчиться визначати закономірності, “смаки” правильного коду, і поступово вдосконалює свої вміння.
Нейронні мережі = Рецепт, що передається з покоління в покоління
Нейронні мережі – це справжня “дідівська” спадщина у світі AI. Уявіть, як бабуся передає свій унікальний рецепт борщу своїй доньці, а та – своїй. Кожне покоління трохи вдосконалює його, додає свої нотки, зберігаючи при цьому основу.
Нейронні мережі працюють схожим чином. Вони складаються з багатьох шарів, кожен з яких обробляє інформацію, передаючи її далі. І чим більше даних проходить через ці шари, тим краще мережа розуміє, як досягти бажаного результату – тобто, написати якісний код.
Big Data = Базар із сотнями інгредієнтів
А тепер уявіть собі великий український базар. Тут є все: свіжі овочі, ягоди, м’ясо, риба, морепродукти, десятки видів спецій. Щоб приготувати найкращий борщ, вам потрібно вміти вибрати найсвіжіші інгредієнти, знати, як їх комбінувати.
“Big Data” – це саме про це. AI-асистенти мають доступ до мільйонів рядків коду, тисяч документацій, величезної кількості інформації. Їхнє завдання – “відфільтрувати” найкорисніше, найрелевантніше, “найсвіжіше”, щоб побудувати надійну основу для вашого коду.
Аналогії з життя: Як це відбулося з моїм другом?
Іван, коли розповідав мені про свою систему, часто вдавався до таких от кулінарних порівнянь. Він говорив: “Це як коли я хочу приготувати щось нове. Спочатку я дивлюся в холодильнику, що маю (це як AI сканує код). Потім читаю декілька рецептів (це як AI завантажує документацію). А потім, вже під час готування, починаю експериментувати, додавати щось своє, пробувати на смак. Але якщо я не спробую, як я дізнаюся, чи смачно вийшло?”.
Саме тому його система проходить через усі ці кроки. Це як додати до основного рецепту борщу кілька перевірок: чи достатньо кисло, чи не надто солодко, чи добре зварений буряк.
Варто знати:
Сучасні AI-асистенти можуть аналізувати не тільки код, але й зображення. Це означає, що вони можуть не лише перевірити, чи правильно щось працює, але й чи добре це виглядає з точки зору дизайну.
Розділ 4: Від теорії до практики: Жива демонстрація “самолікуючого” дива
Іван не тільки розробив систему, але й показав, як вона працює на реальному прикладі. Він обрав проєкт, який сам створив напередодні – конструктор сторінок “Link in Bio” (аналогічний Linktree). Це досить складний додаток: тут є аутентифікація, теми оформлення, можливість створювати посилання. Тобто, багато можливостей для виникнення помилок.
Запускаємо тест!
Він запустив свою команду /e2e test. Тобто, “end-to-end test”. І почалося дійство.
- Перевірка базових умов: Перш за все, система перевірила, чи все гаразд із моїм середовищем (наприклад, чи встановлена програма для автоматизації браузера).
- Занурення у розробку: Потім запустилися три підзадачі: дослідження структури коду, бази даних та попередній огляд коду. Я бачив, як AI аналізує файли, шукає логічні помилки. Це було схоже на те, як досвідчений майстер оглядає будинок перед ремонтом.
- Запуск додатку: Наступним кроком AI запустив сам додаток. І навіть якщо виникали якісь помилки під час старту (наприклад, спроба отримати доступ до сайту до того, як він повністю завантажився), AI не панікував. Він робив паузу, чекав, доки все запуститься, і потім продовжував. Це вже свідчить про його “самостійність”.
- Тестування користувацьких сценаріїв: Тут починається найцікавіше. AI почав проходити усі можливі шляхи користувача: увійти, змінити профіль, додати нове посилання. Він не просто клікав, він перевіряв, чи зміни відображаються правильно на фронтенді, і одночасно робив запити до бази даних (PostgreSQL, якщо кому цікаво), щоб переконатися, що дані збережені і там.
Деталі, які роблять різницю
- Робота з базою даних: Це особливо важливо. Наприклад, під час оновлення профілю AI спочатку робив знімок екрану, щоб бачити, що відбувається. Потім – запит до бази даних, щоб перевірити, чи дійсно змінилися потрібні поля (ім’я, біо, URL аватара). А потім, знову робив знімок, щоб переконатися, що зміни відображені коректно. Це як мати двох контролерів якості: один бачить, що відбувається, а інший – перевіряє документи.
- Проблеми з базою даних? Є рішення! Іван також розповів про одну хитрість, яку він використовує з базою даних Neon. Оскільки тести створюють багато тимчасових даних (нові профілі, посилання), база даних може “засмітитися”. Тому він використовує функцію “розгалуження” (branching) в Neon. Це дозволяє створити тимчасову копію бази даних для тестів, а потім її видалити, не зачіпаючи основну. Дуже зручно, щоб зберігати чистоту!
Коли AI стає “виправником”
У процесі тестування AI виправляв помилки, які блокували виконання завдань. Наприклад, якби не вдалося створити новий профіль, він би спробував виправити код, що відповідає за це, і повторив би спробу. Він не займався дрібницями, але виправляв те, що могло б зупинити весь процес.
Звіт, який полегшує життя
Після завершення всіх тестів, AI видав детальний звіт. Все було чітко розписано: що виправлено, що залишилося. І окрема папка зі скріншотами! Це значно прискорює процес самої перевірки. Я не мушу витрачати години на те, щоб зрозуміти, що саме робив AI. Все чітко і зрозуміло.
Розділ 5: Відкритий фронт: Як використовувати цей інструмент вже сьогодні
Ви, напевно, вже думаєте: “Звучить круто, але як це все мені використати?”. І тут хороші новини – Іван зробив свою систему максимально доступною.
Команда, яку можна “вкрасти” (і використовувати!)
Він помістив весь цей процес у файл skill.md, який можна отримати за посиланням в описі до відео (якщо ви дивитесь це на YouTube). Це як отримати готовий рецепт борщу, який вже протестований сотні разів.
- Просто скопіюйте та запустіть: Якщо ви використовуєте AI-асистента, що підтримує команди (на кшталт Claude Code), ви можете просто запустити цю команду.
- Навіть без підтримки команд: Якщо ваш AI-асистент не підтримує команди безпосередньо, ви можете просто дати йому прочитати цей файл
skill.mdі сказати: “Виконай ці інструкції”. Він зрозуміє. - Автоматичне встановлення: Ця команда навіть автоматично встановлює необхідний інструмент для роботи з браузером (Verscell agent browser CLI). Тобто, вам не треба сильно морочитися з налаштуваннями.
Не тільки для окремих тестів
Цікаво, що цю систему можна інтегрувати безпосередньо в процес розробки нових функцій. Як це працює?
- Планування: Коли ви плануєте нову функцію, ви створюєте детальний документ (Markdown), де описуєте, як вона має працювати, і – найголовніше – як вона має бути протестована.
- Інтеграція тестів: У цьому документі ви можете додати вказівку для AI: “Після того, як ти напишеш код для цієї функції, обов’язково використай команду
e2e test, щоб перевірити її роботу”. - * Безпека:* Іван також додав невеличкий “запобіжник”. За замовчуванням, команда
e2e testвимагає прямого запуску. Але якщо ви видалите один рядок у файліskill.md, AI зможе викликати цю команду як підзадачу. Просто будьте уважні з використанням токенів (ресурсів AI), бо цей процес може бути доволі “жадібним” до них.
Чому це важливо?
Інтегруючи тестування безпосередньо в процес розробки, ми робимо наступне:
- Зменшуємо навантаження на себе: AI самостійно знаходить і виправляє багато помилок.
- Підвищуємо якість коду: Система проходить усі етапи, які зазвичай виконує розробник.
- * Економимо час (у довгостроковій перспективі):* Хоча сам процес тестування займає певний час, він запобігає появі великої кількості помилок, які потім довелося б виправляти вручну, витрачаючи набагато більше часу та ресурсів AI.
Не забувайте про токени!
Це, мабуть, найважливіше попередження. Ця система, хоч і ефективна, вимагає значного обсягу обчислень AI, тобто, споживає чимало токенів. Тому:
- Не очікуйте миттєвого результату: Процес може зайняти певний час. Краще запустити його та зайнятися чимось іншим.
- Оцінюйте вартість: Зважте, чи виправдовує результат витрачені ресурси. Іван, який активно використовує цю систему, каже, що це того варте, бо економія на виправленні помилок у майбутньому значно більша.
Розділ 6: Готові до майбутнього: Як далі жити з “самолікуючим” AI
Знаєте, найцікавіше в таких розробках, як та, що зробив Іван, – це те, як швидко реальність перетворюється на наукову фантастику. Ще зовсім нещодавно ідея про те, що AI може самостійно перевіряти та виправляти написаний ним код, здавалася чимось з далекого майбутнього. А сьогодні – це реально доступний інструмент.
Що ми отримали?
Ми отримали систему, яка:
- Автоматизує складний процес тестування: AI самостійно проходить всі етапи “від користувача”, перевіряючи фронтенд, бекенд і базу даних.
- * “Лікує” себе:* Виправляє критичні помилки, які могли б заблокувати роботу додатку.
- Надає детальний звіт: Дозволяє нам зрозуміти, що було зроблено, і де потрібна наша увага.
- Інтегрується в робочий процес: Можна використовувати як окремий інструмент, так і як частину процесу розробки нових функцій.
Підсумовуючи, що це означає для нас?
Це означає, що ми можемо працювати ще швидше, ефективніше та з меншим стресом. Ми можемо делегувати частину рутинної, але критично важливої роботи AI, звільняючи свій час для більш творчих та складних задач. Це не означає, що ми стаємо непотрібними. Навпаки, наша роль стає більш стратегічною: ми керуємо процесом, приймаємо фінальні рішення, вносимо креативні ідеї. AI – це інструмент, а ми – архітектори.
Заклик до дії: Станьте частиною еволюції!
Я щиро рекомендую вам спробувати цю систему. Візьміть команду, запустіть її на своєму проєкті. Подивіться, як AI справляється. Можливо, ви відкриєте для себе нові шляхи оптимізації вашої роботи, які покращать ваш професійний досвід.
Ваші наступні кроки:
- Завантажте файл
skill.md: Знайдіть посилання в описі до відео. - Запустіть команду: Використовуйте її на своєму проєкті з фронтендом.
- Спостерігайте та аналізуйте: Перегляньте звіт, проаналізуйте результати.
- Інтегруйте в процес: Якщо вам сподобалося, подумайте, як можна вбудувати цей тест у ваш стандартний робочий процес.
- Діліться досвідом: Розкажіть про свій досвід! Це допоможе всій спільноті рухатися вперед.
Завершальна думка: Майбутнє вже тут
Пам’ятайте, технології стрімко розвиваються. Те, що сьогодні здається дивом, завтра стане нормою. “Самолікуючий” AI-код – це не просто тренд, це крок до більш досконалого, надійного та ефективного процесу розробки. І ми маємо можливість бути частиною цієї трансформації.
Тож, давайте експериментувати, вчитися і разом будувати майбутнє – краще, швидше і, звичайно ж, з меншою кількістю помилок!







