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

146 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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*