Как я перестал злиться на AI и начал нормально кодить
Короткий ответ: AI пишет хороший код, если правильно с ним работать. Проблема не в моделях — проблема в том, как мы даём им задачи.
Полгода назад я думал, что Copilot и Cursor — это хайп. Генерят мусор, приходится всё переписывать. Потом понял: я просто не умел с ними работать.
Коротко: что изменило игру
- Перестать винить AI — если код плохой, проблема в задаче
- Давать контекст — модель не телепат, ей нужна архитектура
- Планировать до кода — сначала план, потом реализация
- Тесты вместо ревью — глаз замыливается, тесты нет
- Коммиты после каждого шага — иначе откатить невозможно
Главный сдвиг в голове
Раньше я думал: “Cursor написал фигню, тупая модель”.
Сейчас думаю: “Что я сделал не так в промпте?”
Современные модели — это уверенный мидл-разработчик. Он умный, но не экстрасенс. Если дать ему задачу “сделай авторизацию”, получишь что-то абстрактное. Если дать контекст, план и примеры — получишь рабочий код.
Три причины плохого кода от AI:
- Контекст не собран или противоречив
- Инструкции слишком абстрактные
- Нет тестов и критериев “что значит готово”
Контекст — это топливо
AI не видит твой проект целиком. Он видит то, что ты ему показал.
Что работает:
Сверху вниз — начни с архитектуры, потом спускайся к модулям. Не кидай сразу в баг на 500-й строке.
Memory Bank — создай файлы с описанием проекта: структура, правила, зависимости. Я держу
ARCHITECTURE.mdиCONVENTIONS.mdв корне.Узкий фокус — когда AI понял общую картину, сужай: “теперь работаем только с модулем авторизации”.
План до кода — обязательно
Самая частая ошибка: сразу просить код.
Как правильно:
- Попроси AI составить план реализации
- Проверь план — всё ли учтено?
- Попроси дополнить пробелы
- Сохрани план в
.mdфайл - Только потом — реализация по пунктам
Даже топовые модели типа Claude теряют контекст на длинных задачах. Файл с планом — якорь, к которому можно вернуться.
Тесты вместо code review
Читать тысячи строк сгенерированного кода — бесполезно. Глаз замыливается, пропускаешь ошибки.
Что делаю я:
- Прошу AI написать e2e тест на фичу — это главное
- Запускаю тест
- Если падает — даю AI ошибку, он фиксит
- Повторяю пока не зелёный
Обратная связь через тесты работает лучше, чем “перепиши, мне не нравится стиль”.
Верификация: не верь “Готово”
AI любит говорить “Готово!”, когда сделано 70%.
Мой чеклист:
- Беру файл с планом
- Прохожу по каждому пункту
- Проверяю: есть код? есть тест?
- Если нет — возвращаю AI на доработку
Этот шаг спасает от 80% недоделок.
Git-гигиена
Коммиться после каждого этапа. Серьёзно.
- Сформировал план →
git commit -m "plan: auth module" - Реализовал пункт →
git commit - Тесты прошли →
git commit
Если AI пошёл не туда — git reset и пробуем иначе. Без этого откатить изменения в 15 файлах — боль.
Какой инструмент выбрать
Пользуюсь всеми тремя, для разных задач:
| Инструмент | Лучше всего для |
|---|---|
| GitHub Copilot | Повседневный код, автодополнение, бойлерплейт |
| Cursor | Большие проекты, рефакторинг, работа с несколькими файлами |
| Claude Code | Сложные задачи, архитектура, объяснения |
Copilot для рутины, Cursor для проектов, Claude когда нужно подумать.
Итог
AI coding работает, если:
- Даёшь контекст и план
- Проверяешь тестами, а не глазами
- Коммитишься часто
- Не веришь на слово “Готово”
Модели уже достаточно умные. Вопрос в том, насколько хорошо мы умеем с ними работать.
Часть инсайтов взял из статьи на Хабре и обсуждений на Reddit. Но проверил всё на своих проектах — работает.