Перейти к содержанию
+420 774 147 594
Контакты

Блог

David Azarian

10 признаков, что ваше vibe-coded MVP - это технический долг

Вы провели выходные в Cursor, Lovable или Bolt и выпустили работающее MVP. Vibe был хороший, дофаминовый удар - реальный, ранние пользователи были впечатлены. Теперь вы пытаетесь добавить функции, онбордить разработчика или пройти security review - и внезапно код, который ощущался магическим, ощущается как трясина.

Vibe-coded MVP становятся техническим долгом так же, как стартап-кодовые базы делали это всегда: слишком быстро, слишком неструктурированно, никто не ревьюит вывод. Вот десять признаков того, что ваше AI-built MVP пересекло территорию долга, отсортированных от наименее срочного до наиболее срочного.

1. У вас файлы свыше 1000 строк

AI-инструменты генерируют код, но редко его рефакторят. Вывод продолжает накапливаться, пока один React-компонент не делает работу пятнадцати. Запустите wc -l на исходных файлах. Если больше пяти - свыше 800 строк, ваша кодовая база растёт без декомпозиции.

Запутанный код как признак технического долга

Стоимость исправления: 2-недельный cleanup-спринт для худших нарушителей. Файлы под 300 строк легче тестировать, рефакторить и понимать.

2. Покрытие тестами - ноль

Запустите тест-команду с coverage. Если число 0% (распространено) или менее 10% (очень распространено), каждое изменение имеет существенный шанс сломать что-то другое.

Стоимость исправления: сначала добавьте smoke-тесты для самых важных пользовательских флоу. Юнит-тесты для критической бизнес-логики - вторым этапом. Стремитесь к 60-80% покрытия на модулях, которые имеют значение, а не к 100% везде.

3. TypeScript в основном "any"

Включите strict mode в tsconfig.json и запустите tsc --noEmit. Посчитайте ошибки. Меньше 50: управляемо. Больше 500: AI генерировал без type safety, и каждое изменение рискует runtime-ошибками, которые TypeScript должен был поймать.

Стоимость исправления: инкрементально - включайте strict mode файл за файлом, а не всё сразу.

4. Вы не можете запустить приложение локально

Если ваша история local dev сломана, или приложение запускается только внутри Lovable / Replit / Bolt, вы не владеете своим ПО на самом деле. Попробуйте: клонируйте репо в свежий каталог и следуйте собственному README. Если не запустите за 15 минут - не запустит и следующий разработчик, которого наймёте.

Запутанный код как признак технического долга

Стоимость исправления: несколько дней на настройку Docker Compose или нормальных npm-скриптов.

5. Секреты закоммичены в git

Запустите git log --all -p | grep -iE "(api_key|secret|password|token).*=". Если что-то возвращается, у вас credentials в git-истории. Они не просто открыты сейчас - они открыты навсегда, даже если вы удалите их из HEAD.

Стоимость исправления: немедленная. Ротируйте каждый утекший secret. Используйте BFG или git-filter-repo для очистки истории, если ключи нельзя дёшево ротировать.

6. Ваш Supabase RLS открыт

Откройте дашборд Supabase, перейдите в Authentication → Policies и проверьте каждую таблицу с пользовательскими данными. Если видите USING (true) для anon роли на любой из этих таблиц, любой с вашим URL может прочитать эти данные. AI-инструменты генерируют эту политику по умолчанию, чтобы демо «работало».

Стоимость исправления: часы, но высокая срочность. Ужесточите политики только до владельца строки.

7. Каждое AI-изменение ломает разную функцию

Если заметили, что просьба к AI изменить одно постоянно ломает что-то несвязанное, это признак того, что ваш код имеет скрытое coupling. Функции переплетены, модули неявно делят state, и AI не видит зависимостей, пока они не сломаются.

Стоимость исправления: целевой рефакторинг наиболее изменяемых файлов. Добавьте тесты сначала, чтобы регрессии всплывали немедленно.

8. Вы заперты на платформе

Шаблоны Lovable, runtime Replit, паттерны компонентов v0, full-stack scaffolding Bolt - каждый создаёт lock-in. Вопрос: можете ли вы сегодня перенести это приложение на Cloudflare Pages или Vercel, переписав не более 20%? Если нет, у вас vendor lock-in.

Стоимость исправления: от 2-недельной миграции до полного переписывания, в зависимости от глубины интеграции с платформой.

9. Новые разработчики разгоняются неделями

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

Стоимость исправления: документация, декомпозиция файлов, консистентные паттерны. Несколько дней инвестиций для экономии недель на разработчика.

10. Вы боитесь деплоить

Самый ясный признак технического долга - страх. Если push в продакшен ощущается как риск - если вы откладываете деплои, если каждый релиз требует ручного тестирования, если рассматривали заморозку разработки, чтобы не ломать вещи - ваш код вам что-то говорит. Слушайте.

Стоимость исправления: CI/CD pipeline с автоматическими тестами, staging-окружение, план отката. Это единственное изменение снижает тревожность при деплое больше, чем любое другое вмешательство.

Что делать дальше

Три или меньше признаков применимы: добавьте CI/CD и базовые тесты самостоятельно. Вы в порядке. Четыре-шесть признаков: закажите аудит кода и спланируйте стабилизационный спринт. Семь или больше: остановите добавление функций, пока не разберётесь с фундаментом - каждая новая функция поверх сломанного фундамента множит будущую стоимость.

Детали на странице Спасение Vibe-кода. Или прочитайте гид-пиллар: Что такое vibe coding и когда вашему AI-приложению нужно спасение?

Фотографии: Unsplash

Нужна помощь с вашим проектом?

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