Розробка з підтримкою ШІ: Claude, Cursor і межі автоматизації
Як інтегрувати Claude і Cursor у реальний процес розробки, не втрачаючи архітектурного мислення: дієві підходи та пастки, яких варто уникати.

Це технічна стаття для розробників. Якщо ви керуєте салоном, рестораном або ремісничим бізнесом, почніть краще звідси: скільки насправді коштує сайт і що справді потрібно вашому сайту.
Сьогодні кожен розробник може будь-коли скористатися ШІ як парним програмістом. Питання вже не в тому, чи варто його використовувати, а в тому, як інтегрувати його так, щоб технічний борг не накопичувався швидше, ніж ШІ генерує код. У цій статті я описую робочий процес, до якого прийшов після року використання Claude і Cursor у продакшн-проєктах.
Основна суперечність
Моделі ШІ чудово генерують код, який виглядає правдоподібно. Але вони погано розуміють ваші конкретні обмеження: домовленості команди, небезпечну конструкцію, що спричинила збій три місяці тому, або сторонню бібліотеку з недокументованою несумісною зміною. Робота розробника змістилася від написання шаблонного коду до надання контексту й оцінювання результату.
Це не заклик використовувати ШІ менше. Це пропозиція використовувати його інакше.
Ролі інструментів
Я використовую ці два інструменти для різних завдань:
Claude (у Claude Code / API) — для завдань, що потребують міркування: архітектурних рішень, налагодження складного стану гонитви, перевірки коректності PR, пояснення того, чому фрагмент коду працює саме так. Він спирається на контекст розмови й добре працює з неоднозначністю.
Cursor — для генерації коду в межах конкретного файла або модуля: реалізації функції з уже визначеним інтерфейсом, переведення компонента на новий API, написання тестів для наявної функції. Найкраще він працює, коли бачить навколишній код у контексті.
Жоден із цих інструментів не замінює проєктне мислення. Обидва замінюють набір тексту.
Контекст — це вузьке місце
Найважливіша навичка в розробці з підтримкою ШІ — уміння надавати якісний контекст. Нечіткий запит дає нечіткий код:
❌ "Додай пагінацію до блогу"
✅ "Додай курсорну пагінацію до getMdxPosts() у lib/mdx.ts.
Зараз функція повертає всі дописи, відсортовані за датою у спадному порядку.
Параметри: { cursor?: string; limit: number }.
Результат: { posts: BlogPost[]; nextCursor: string | null }.
Курсор — це slug останнього елемента на попередній сторінці."
Другий запит визначає файл, поточну поведінку, інтерфейс і контракт результату. Модель генерує рішення, що відповідає наявній кодовій базі, а не абстрактну реалізацію пагінації.
CLAUDE.md як постійний контекст
Одна з найкорисніших можливостей Claude Code — файл CLAUDE.md: інструкції рівня проєкту, які додаються до кожної сесії. Я документую в ньому те, що модель не може з’ясувати з коду:
markdown
Це не дає моделі «послужливо» перебудувати вашу тестову конфігурацію або додати console.log у продакшн-код.
Робочий процес для нової функції
Ось як типова функція проходить через набір інструментів:
1. Проєктування в діалозі
Перш ніж торкатися коду, опишіть функцію Claude й обговоріть підхід:
"Мені потрібно додати endpoint для підписки на розсилку. Для email ми використовуємо Resend.
Endpoint має: перевіряти формат email, шукати дублікати через Prisma,
надсилати вітальний лист і повертати відповідь з урахуванням rate limit.
Яка найпростіша реалізація відповідає наявному патерну api/?"
Так архітектурні рішення — де розмістити rate limiting і який вигляд мають відповіді з помилками — стають явними ще до того, як потрапляють у код.
2. Генерація в Cursor
Коли інтерфейс зрозумілий, реалізуйте його за допомогою inline generation у Cursor. Контекст навколишнього файла — наявні routes — підкаже потрібний стиль.
3. Критична перевірка результату
Код, згенерований ШІ, має передбачувані типи помилок:
- Надмірне проєктування: абстракції, яких не виправдовують поточні вимоги
- Брак обробки помилок на межах: добра внутрішня логіка, але слабка перевірка вхідних даних
- Оптимістична робота з конкурентністю: стан гонитви не враховано, наприклад коли двоє користувачів підписуються одночасно
- Вигадані API: функції виглядають правильно, але їх немає у встановленій версії
Читайте результат так, як читали б PR молодшого розробника. Приймайте коректні частини, решту переписуйте.
4. Пишіть тести самостійно
Тести — це специфікація. Коли ви пишете їх самі, доводиться продумати крайові випадки, які ШІ не врахував. Використовуйте ШІ для каркаса тестів — блоків describe і налаштування моків, — але твердження пишіть вручну.
Коли не варто використовувати ШІ
Деякі завдання з підтримкою ШІ виконуються повільніше:
Налагодження продакшн-проблем — модель не бачить ваших логів, реальних даних чи інфраструктури. Вона пропонуватиме правдоподібні виправлення, які не усувають першопричину. Спочатку використовуйте інструменти спостережуваності.
Код, критичний для безпеки — логіка автентифікації, очищення вхідних даних, криптографія. ШІ помиляється тут непомітно, і такі помилки можуть пройти code review. Пишіть цей код із розумінням основ і віддавайте його на аудит.
Рефакторинг між багатьма файлами — контекстне вікно моделі обмежує її огляд залежностей. Великі рефакторинги краще спочатку спланувати в діалозі, а потім виконати вручну або спеціалізованим скриптом.
Вимірювання реального прискорення
За моїми спостереженнями, рутинні завдання реалізації — CRUD-endpoints, компоненти форм, утилітарні функції — виконуються у 3–4 рази швидше. Швидкість архітектурної роботи й налагодження майже не змінюється: основний час іде на планування.
Більший виграш — психологічний. Вартість перевірки нового підходу стає майже нульовою. За час, який раніше йшов на одну реалізацію, можна створити три прототипи, порівняти їх і відкинути два слабші. Це змінює спосіб ухвалення проєктних рішень.
Висновок
Найефективніші розробники з підтримкою ШІ, яких я бачив, мають спільну рису: вони витрачають більше часу на контекст і перевірку, а не менше. Модель відповідає за синтез, розробник — за судження. Найбільше користі дає процес, у якому ви в кожен момент чітко розумієте, яку саме з цих двох робіт виконуєте.
Працюєте над чимось подібним?
Я створюю швидкі маркетингові сайти й системи онлайн-запису для малого бізнесу по всій Європі — як незалежний фахівець, віддалено. Відповідаю протягом 24 годин.
Зв’язатисяСхожі статті
Сайт для ремісничого бізнесу: заявки замість пропущених дзвінків
Чому електрики, сантехніки та інші майстри втрачають замовлення телефоном — і як сайт із формою заявки, завантаженням фото та екстреним контактом перетворює пропущені дзвінки на структуровані звернення. З інтерактивним демо.
Прочитати статтюBooksy, Fresha та інші платформи чи власний сайт для запису: чесне порівняння
Що маркетплейси запису справді дають салонам, скільки вони коштують у довгостроковій перспективі та коли доцільний власний сайт з онлайн-записом. Зважене порівняння без категоричного «або-або».
Прочитати статтю