NeyrixNEYRIXGUIDE← Карта путиTelegram ↗
УРОВЕНЬ PROДЛЯ ПРАКТИКОВ12–18 мин1 ИЗ 6

PRO.01

Vibe Coding и разработка с AI

РЕЗУЛЬТАТ УРОКА

Использовать AI как инженерный инструмент с контролем качества.

Главное за 30 секунд

AI ускоряет прототипирование и рутинную разработку, если задача ограничена архитектурой, тестами, ревью и понятным Definition of Done.

Разбираемся

Vibe Coding — это когда разработчик описывает желаемое поведение на естественном языке, AI пишет код, и всё «как-то работает». Проблема в «как-то»: без понимания, что именно написал AI, без тестов и без ревью это технический долг, упакованный в функционирующий интерфейс. Правильный подход к разработке с AI — не «доверяй и запускай», а «генерируй, понимай, тестируй, запускай».

Рабочий цикл
Спецификациявход, выход, кейсы
ГенерацияAI пишет код
Чтениепонимаю логику
Тестызапуск локально
Коммитточка отката
Не понял код — назад к спецификации
Уточнить спеку
Перегенерация
Стоп-условиекод, логику которого вы не можете объяснить, не идёт дальше «Чтения» — это не экономия времени, а долг.

Главное: генерация — второй шаг из пяти. Разобраться в спеке дешевле, чем в непонятном коде на проде.

Генерация — не финал, а второй шаг из пяти. Возврат к спецификации, когда код непонятен, дешевле, чем разбор непонятного кода в проде.

AI IDE и coding agents

Современные AI-инструменты для разработки (Cursor, GitHub Copilot, Claude Code и аналоги) встроены непосредственно в редактор. Они предлагают автодополнение, объясняют код, пишут тесты, рефакторят функции. Главное правило: принимайте только тот код, логику которого вы понимаете. Непонятый код в production — источник будущих непредсказуемых проблем.

Как формулировка меняет результат

КритерийРасплывчатая задачаЗадача с критериями
Постановка«Сделай проверку номера заказа»«Принимает ORD-12345, возвращает 12345. Любой другой формат — отказ»
Что вернёт AIСвоё представление о том, что такое «номер заказа»Проверку ровно того формата, который вы назвали
Граничные случаиНе обработаны — про них не спросилиПеречислены заранее: пустая строка, другой регистр, буквы вместо цифр
ТестыОбычно один — на удачный случайПо одному на каждый заявленный случай
РевьюНепонятно, что считать правильнымСверяем результат с критериями из задачи
Разница в три символадве версии одной проверки
// Версия от AI: запускается, на "ORD-12345" работает.raw.match(/ORD-(\d+)/i)// Версия после ревью: соответствует поставленной задаче.raw.match(/^ORD-(\d+)$/)

Единственный блок кода в уроке — потому что словами эту разницу не передать. Флаг i означает «регистр не важен»: строка «ord-12345» тоже пройдёт. Символы ^ и $ означают «строка начинается и заканчивается на этом»: без них пройдёт и «XORD-12345Y». Обе версии проходят проверку на удачном случае — расхождение видно только при чтении.

Почему запуск не заменяет чтение

Проверка на удачном случае показывает, что код не падает. Она не показывает, что он делает именно то, о чём договорились. В примере выше обе версии успешно разбирают «ORD-12345» — и первая при этом молча принимает мусор. Отсюда практическое правило: если вы не можете объяснить своими словами, что делает каждая строка, эта строка не проверена. Не «плохо написана», а именно не проверена — и в продакшене она поведёт себя так, как никто не ожидал.

Репозитории и Git

Работа с AI-кодом требует дисциплины версионирования. Делайте маленькие коммиты после каждого рабочего изменения. Это позволяет откатиться к последнему рабочему состоянию, когда AI предложил «улучшение», которое сломало всё остальное. Работать без Git с AI-кодингом — значит потерять возможность отката.

Ревью сгенерированного кода

Порядок не случайный: сверху то, что чаще всего пропущено, снизу — то, что дороже всего стоит. Спрашивать это можно и не читая код построчно.

  1. Обработка ошибокAI обычно описывает только удачный путь. Что произойдёт при пустом вводе, обрыве сети, неожиданном формате данных? Если в коде нет ни одной ветки на ошибку — она не обработана, а не «не нужна».
  2. Соответствие договорённостиКаждое требование из задачи должно быть видно в результате. Пример с регистром выше — именно такое расхождение: код работает, но делает не то, о чём договорились.
  3. Хардкод и заглушкиПрописанные напрямую пути, тестовые адреса, «пока вернём фиксированное значение». В демонстрации это работает, в реальной работе — нет.
  4. АктуальностьМодель обучена на данных до определённой даты и может предложить способ, который в текущей версии инструмента уже не работает или считается небезопасным.
  5. БезопасностьДанные пользователя, попадающие в запрос к базе без проверки. Пароли и ключи в логах. Права доступа шире необходимых. Здесь ошибка стоит дороже всего — и AI не считает безопасность приоритетом, если её не потребовать явно.

Что спросить у исполнителя

5 пунктов

Если код пишет не тот, кто принимает решение, эти пять вопросов заменяют чтение кода.

  • Если критериев нет нигде, кроме переписки, — сверять результат не с чем, и ревью превращается во «выглядит нормально».
  • Ответ «всё работает» означает, что проверен один удачный случай. Нужен перечень: пустой ввод, неверный формат, слишком большой объём.
  • Самая частая недоделка в сгенерированном коде. Правильный ответ описывает поведение, а не «такого не будет».
  • Проверка того, что работа ведётся с историей изменений. Без неё неудачная правка означает восстановление по памяти.
  • Не про недоверие. Непонятый код нельзя поддерживать: через месяц его будет дешевле выбросить, чем разобрать.
Отмечайте пункты по ходу разговора: отметки сохранятся.

Безопасный запуск

Сначала локально на тестовых данных. Проверьте, что код не обращается наружу неожиданным образом, не пишет за пределами своей области, не сохраняет секреты в журналах. Только после этого — на тестовый стенд, потом в работу. AI-код не является «более безопасным» только потому, что его написал AI.

ПРИМЕР

Три символа между «работает» и «делает то, о чём договорились»

Ситуация. Нужна проверка номера заказа. Задача поставлена одной фразой, без критериев. Результат проверили на правильном номере — работает, и функция уходит в работу.

Результат. Через неделю в базе заказы с номерами из строк «ord-12345» и «XORD-99Y»: проверка принимала их молча, потому что в ней не было условий «строго этот регистр» и «ничего лишнего по краям». Четыре строки с критериями до начала работы показали бы расхождение при первом же взгляде — а не через неделю в данных.

ПРАКТИКА

Сделайте сейчас

Возьмите небольшую задачу из реального проекта. Прежде чем поручать её AI или человеку, запишите четыре строки: что принимает, что возвращает, четыре случая, которые должны быть отклонены, и что происходит при ошибке. Затем получите результат и пройдите по нему с чек-листом из этого урока. Расхождение с записанным находится почти всегда — и его цена измеряется минутами, если найдено сейчас, и днями, если найдено в данных.

ОГРАНИЧЕНИЯ

Где нужен человек

  • Код, который запускается локально, не является готовым к работе без ревью и проверок.
  • Не принимайте результат без понимания: непонятый код — долг с непредсказуемыми последствиями.

Смежные уроки

Материал проверен: 20 августа 2026. Инструменты и тарифы меняются — сверяйтесь с первоисточником.