banatie-content/assets/beyond-vibe-coding/interview.md

14 KiB
Raw Blame History

Interview Notes

Записи ответов Олега на вопросы по методологиям AI-разработки. Используется для создания голоса Henry в статье.


Vibe Coding

Вопрос: Ты когда-нибудь работал в режиме vibe coding? Что получилось? Когда это уместно, когда нет?

Ответ:

Термину меньше года, а он уже стал практически синонимом AI-разработки. Наверное потому что удобно звучит — "vibe coding", "я навайбкодил". Но в этом и проблема: vibe coding сохраняет негативные коннотации (недостаточно профессионально, ненадёжно, абы-как), и при этом обобщает весь AI-кодинг, перенося этот негатив на всё поле. Поэтому и пишу эту статью — давайте разберём где vibe coding, а где другие подходы.

Когда использую: Dev tools не попадающие в прод, прототипы, эксперименты, side projects. Надо признать — во многих случаях работает неплохо.

Но не чистый vibe: Обычно всё равно проверяю изменения — хотя бы быстро просматриваю git diff перед коммитом. Если задача большая — прошу агента коммитить небольшими порциями, потом просматриваю.

Хорошие практики даже при vibe coding:

  1. Покрывать код тестами и проверять что проходят (+ typecheck, lint, prettier)
  2. Просить другого AI агента сделать ревью проделанной работы
  3. Человеческое внимание для важных вещей — если что-то критично, лучше убедиться самостоятельно

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


Spec-Driven Development

Вопрос: Пробовал GitHub Spec Kit или писать spec перед кодом? Это будущее или overkill?

Ответ:

Не знал что есть прям такой фреймворк, но оказывается именно так и делаю большинство задач над продакшен проектами. Пишу подробную спецификацию о том что хочу сделать. Не для каждой задачи — когда нужно начать новый значительный домен функционала.

Что могу подтвердить:

  • Время на spec иногда > времени на код. Да, чёрт возьми — это правда. Бывает полдня пишешь спеку, потом уходишь пить кофе, а Клод за это время успевает всё закодить. Несправедливо! :)
  • Для мелких задач — действительно перебор
  • Созданная спека сохраняется как CLAUDE.md для продолжения работы позже

Важно: так делаю для больших разделов. Одним запуском AI агента проблема не решается. Часто потом работа идёт недели или месяцы, и спека используется для быстрого старта новых сессий: "прочитай спеку, найди код".

Проблема подхода: изначальное решение меняется в ходе разработки. Находятся другие подходы, меняются пути и названия функций. Приходится держать спеку в актуальном состоянии — дополнительная когнитивная нагрузка на человека и AI. Хорошо держать документ в коде и коммитить изменения — тогда удобнее видеть что изменилось.

Лайфхак: Последнее время делаю стадию разработки спеки не в одиночку, а совместно с Claude Desktop — отличный инструмент для research, brainstorm и metaprompting. Прорабатываю решения, делаю глубокий research, нахожу архитектурное решение, прошу Claude Desktop собрать полноценную спецификацию. Сохраняю в проект и запускаю Claude Code работать по ней.


Agentic Coding

Вопрос: Как используешь Claude Code? Даёшь автономию или контролируешь каждый шаг? Что доверяешь агенту, что нет?

Ответ:

Вижу много восторженных отзывов о Ralph Loop и может быть хотел бы попробовать. Но честно говоря, этот подход меня смущает.

Главный вопрос: какие задачи можно ставить агенту, чтобы настолько долго оставлять его работать автономно?

Смотри мой ответ про Spec-Driven Development — написание спецификации занимает кратно больше времени чем её выполнение. Меня пугает: сколько времени нужно потратить на постановку задачи, чтобы её потом выполнять 14 часов?

Я хотел бы найти применение такому подходу, но пока скорее озадачен и не вижу прямых применений в своих проектах.

Призыв к читателям: может быть вы в комментариях поделитесь кейсами где Ralph Loop классно работает?


Дополнение: Permissions в Claude Code

Пермишены — это боль. Понятно зачем они, но честно говоря они ломают всю концепцию. Сидеть и следить как Claude Code делает свою работу и на каждый чих спрашивает разрешение? Это вообще не тот опыт который хотелось бы получить от AI разработки. Они больше расфокусируют внимание.

Мои практики:

  • Прошу Claude Code: "возьми все tools этого MCP и добавь разрешение в .claude/settings.json". Проактивное заполнение работает лучше чем кликать вручную
  • Не встречал ничего такого, чего нельзя было бы вернуть с помощью git reset
  • Иногда включаю --dangerously-skip-permissions, но поглядываю не пошёл ли Claude открывать банковский счёт на моё имя

Вывод: это вопрос который предстоит ещё переизобрести и найти какой-то компромисс.


AI Pair Programming

Вопрос: Copilot/Cursor — как pair programmer или просто autocomplete? Реально ли это "парное программирование"?

Ответ:

Помню ранние времена, когда AI автокомплит появлялся. Честно? Пробовал в несколько заходов — и каждый раз полностью отключал.

Почему не зашло: предложения написать мою функцию по названию только мешали и сильно сбивали с мысли. Знаю что многим заходит, но мне почему-то нет. Стандартных подсказок IDE мне всегда хватало.

Почему так: когда пишу код, я уже мысленно представил что именно хочу получить. Предлагаемое агентом мне уже не нужно. Я делаю ресёрч ДО того как разобраться как это написать в коде.

Где реальное pair programming: Claude Desktop с хорошо настроенной системной инструкцией проекта + Filesystem MCP чтобы он мог читать реальные файлы из репозитория. Вот тогда — да, могу почувствовать что общаюсь с кем-то кто понимает мою проблему и реально помогает в её решении.

Вывод: Autocomplete ≠ pair programming. Настоящее pair programming — это диалог, когда AI имеет контекст твоего проекта.


Human-in-the-Loop

Вопрос: Как часто AI делает что-то без твоего одобрения? Где граница доверия?

Ответ:

Редко останавливаю Claude Code во время работы. Но иногда бывает — когда вижу что он пошёл не по тому пути. Признаюсь, часто это потому что я просто дал недостаточно деталей — я это сразу понимаю и дописываю.

Permissions ≠ HITL. Не согласен что permissions это реализация Human-in-the-Loop. Это слишком низкоуровневые запросы — по ним не всегда видно какую задачу сейчас решает агент.

Настоящий HITL = Planning Mode. Предпочитаю запускать режим планирования для всех кроме элементарных задач. Вот это реальный контроль на уровне задачи.

Проблема современных агентов: они не очень понимают где те моменты когда нужно остановиться и спросить. Редко встречал точное попадание. Думаю это то, что ещё предстоит реализовать в будущем. Так же как и чтобы агент отвечал "я не знаю". Видимо современные модели на это не способны в широком смысле.

Базовое правило: проверка кода в конце работы агента — это обязательное условие для профессиональной работы.


TDD + AI

Вопрос: Пишешь тесты первыми при работе с AI? Работает ли классический TDD с генеративным AI?

Ответ:

Это сто процентов очень важный подход. Стараюсь практиковать его на ключевом функционале проекта.

Tests as Specification: Да, это важный момент. Покрываю тестами значимые участки и всегда инструктирую агента проверять тесты. Это часть спецификации.

AI пишет тесты первым: Обычно так не делаю. Только когда есть хорошая базовая спецификация — например, документация на API которую легко превратить в набор тестов. Но чаще: спецификация → базовая имплементация → покрытие тестами → дальнейшая работа.

TDD как guardrails: Думаю там это тем более важно. Но продолжу скепсис — а кто будет писать тесты? Если честно, написанная подробная спека и подробные тесты — это уже 80% работы.

Опасность AI-тестов: Тесты нужно проверять самостоятельно. Не раз был очевидцем когда агент писал тесты которые "проходили" потому что он использовал замоканные запросы. Иногда это funny, иногда может загубить дальнейшую работу. Правильные тесты — это надёжный фундамент дальнейшей работы.


Дополнение: Контекст агента

Тесты — это часть того, что я бы назвал "контекстом агента". Это крайне важная составляющая агентского кодинга, значительно повышающая автономность агента и его способность доведения решения до конца.

Условно говоря: если вы дебажите проблему, делаете фичу — подумайте как дать возможность AI агенту самостоятельно проверять результат его работы. Это могут быть тесты, MCP инструменты с доступом к браузеру. Наличие таких способностей повышает эффективность агента в разы.

Где должен быть человек: в правильном месте — для оценки итогового результата или решения. Нужно стараться исключить его из низкоуровневых мелких итераций где агент лучше действует самостоятельно.


Created: 2026-01-22