Вайб-кодинг и AI-Native: Как мы перестали писать код руками и отдали рутину Claude Code

Давайте начистоту: AI-Native — это не когда у вас в IDE висит Copilot и угадывает названия переменных. Это абсолютно другой подход к созданию софта, который сейчас называют «вайб-кодингом» (vibe coding). Вы задаете высокоуровневое направление, архитектурные границы и правила игры (тот самый «вайб»), а автономный ИИ-агент пишет весь синтаксис.
Раньше мы сами писали тонны бойлерплейта, мапперов и контроллеров. Сейчас разработчик превращается из кодера в системного архитектора и строгого ревьюера. Вот как этот процесс выглядит на практике, если отбросить маркетинговую шелуху.
1. OpenAPI — наш главный промпт (и защита от галлюцинаций)
Главная беда любой LLM — она любит фантазировать. Скажешь ей «сделай API для пользователей», и она нагородит свои структуры, забудет про типы и забьет на валидацию.
Чтобы ИИ не галлюцинировал, мы используем API-First подход. Файл openapi.yaml становится не просто документацией для фронтендеров, а жестким техническим заданием для нейросети.
Вы руками описываете пути, DTO, обязательные поля и лимиты (например, что
age— этоintegerсminimum: 18).Агент читает эту спеку и генерирует контроллеры, модели и валидацию строго по ней. Пространства для фантазии ноль — ИИ жестко зажат контрактом.
2. Контекст в коде: выбрасываем Confluence
Обычно правила архитектуры лежат где-то в Confluence, куда никто не заходит. В AI-Native мире правила должны быть машиночитаемыми и лежать прямо в репозитории, чтобы ИИ учитывал их при каждом запросе.
.cursorrules (или .claudemdc): Файл в корне проекта с жесткими инструкциями без воды. Например: “Используй Clean Architecture. Слой Domain не должен знать про инфраструктуру. Используй CQRS. Ошибки бизнес-логики возвращай через паттерн Result, никаких Exceptions”.
Словарь терминов (docs/domain-glossary.md): ИИ обожает плодить синонимы (то
User, тоClient, тоCustomer). Пишем словарь: “Account — это счет. Deactivate — это смена статуса, а не удаление”. Агент читает это и называет классы правильно, не ломая Ubiquitous Language.Архитектурные решения (docs/adr/): Папка с короткими Markdown-заметками о выбранных технологиях. Когда просишь ИИ прикрутить кэш, он читает файл
0001-use-redis.mdи делает всё на Redis, а не тащит в проект Memcached по своей инициативе.
3. Стек и фреймворки: почему рулит строгая типизация
AI-Native не требует модных «ИИ-фреймворков». Наоборот, чем жестче и скучнее ваш стек, тем лучше ИИ пишет код.
Строгие типы (C#, Go): Компилятор — ваш лучший тестировщик. Если ИИ нагаллюцинировал с типами, компилятор C# или Go тут же ударит его по рукам на этапе сборки.
Паттерн CQRS: Идеальная архитектура для нейросети. Ей гораздо проще и безопаснее сгенерировать один изолированный
CreateOrderHandlerна 100 строк, чем ковырять и рефакторить монолитный God-сервис на тысячи строк.DevContainers (Docker): Инфраструктурная база. Вы даете ИИ настроенный
.devcontainer, и агент сам поднимает себе изолированную среду со всеми базами данных, не ломая вашу локальную ОС.
4. Как разложить папки, чтобы ИИ не сошел с ума
ИИ сканирует структуру проекта. Если у вас каша, он напишет кашу. Делаем всё максимально прозрачно (по классике Clean Architecture):
/
├── .cursorrules # Главный системный промпт (правила игры)
├── docs/ # Машиночитаемый контекст
│ ├── adr/ # Архитектурные решения
│ ├── api/openapi.yaml # API-контракт (наш главный ограничитель)
│ └── domain-glossary.md # Словарь терминов бизнеса
├── src/
│ ├── Domain/ # Чистая бизнес-логика (интерфейсы, сущности)
│ ├── Application/ # Наши юзкейсы, CQRS-команды
│ ├── Infrastructure/ # Работа с БД (Postgres, Redis)
│ └── Presentation/ # REST API Контроллеры (генерируются ИИ)
├── tests/ # Unit, Integration и Contract тесты
└── Makefile # Шорткаты (make build, make test) для агента
5. Claude Code в терминале: как он работает за нас
Забудьте про чат-боты сбоку экрана. Современные агенты (Claude Code) живут прямо в терминале и имеют права на выполнение shell-команд. Как выглядит обычная задача:
Вы пишете в консоли: “Реализуй эндпоинт деактивации профиля по openapi.yaml. Сделай хэндлер, напиши миграцию для Postgres и покрой юнит-тестами. Запусти
make test”.Агент читает ваши правила, сканирует существующие слои, генерирует файлы и сам запускает тесты в терминале.
Допустим, тест упал, потому что ИИ забыл прокинуть зависимость в DI-контейнер. Агент сам читает ошибку из
stderr, лезет в условныйStartup.cs, добавляет зависимость и снова запускает билд. Вы получаете на ревью уже рабочий код.
6. Тесты: теперь это проблема агента
Написание моков и генерация тестовых данных — самая скучная работа. Теперь мы отдаем ее целиком (подход Agent-Driven Development).
Юнит-тесты: Вы просто говорите: “Напиши тесты для оплаты, проверь случай, когда баланс отрицательный”. ИИ сам прикручивает условный
xUnit+Moqи генерит простыню бойлерплейта.Интеграционные тесты (Testcontainers): Агент пишет тест, который программно поднимает реальный Docker с Postgres, накатывает туда миграции, делает реальный SQL-запрос, проверяет ответ и убивает контейнер.
7. А что остается делать Senior-разработчику?
Раз ИИ пишет код, мы что, больше не нужны? Наоборот. ИИ забирает реализацию CRUD, а на нас остается самая сложная, высокоуровневая инженерная работа, где нейросети стабильно лажают:
Проектирование домена (DDD): ИИ не знает ваш бизнес. Если вы неправильно выделите агрегаты и границы, ИИ сгенерирует идеальный код для провальной архитектуры. Думать над сущностями всё еще должны вы.
Базы данных и перфоманс: Модели часто пишут ORM-запросы с проблемой N+1, забывают про индексы и блокировки (Row-Level Locks). SQL-миграции нужно ревьюить под лупой.
Отказоустойчивость (Resiliency): ИИ пишет «счастливые пути». Кто будет настраивать Circuit Breaker, таймауты, идемпотентность ключей и ретраи, когда отвалится внешнее API? Это ваша зона ответственности.
Безопасность (Security): ИИ может захардкодить секреты, забыть проверить права пользователя на конкретный ресурс (IDOR) или пропустить инъекцию.
В эпоху вайб-кодинга вы перестаете быть просто «писателем кода». Вы становитесь системным архитектором, который выстраивает надежный каркас. И это, честно говоря, гораздо интереснее, чем в сотый раз писать один и тот же контроллер.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.