Рефакторинг после вайб-кода: как сделать код поддерживаемым
Вайб-код становится неподдерживаемым из-за дублей, огромных файлов, смешения логики и интерфейса и отсутствия тестов. Переписывать с нуля обычно не нужно: сначала фиксируем текущее поведение тестами, затем включаем строгие проверки типов и линтер, выносим бизнес-логику в отдельные модули и удаляем мёртвый код небольшими шагами.
Первая помощь и как чиним
- 1Карта проекта
Модули, зависимости, дубли, самые большие и самые часто меняемые файлы.
- 2Страховка
Тесты на ключевые сценарии и проверка типов, которые запускаются при каждом коммите.
- 3Структура
Выносим работу с данными и бизнес-правила из компонентов в отдельный слой.
- 4Чистка
Объединяем дубли, удаляем неиспользуемые файлы, функции и зависимости.
- 5Документация
README, схема папок и файл правил для ИИ, чтобы порядок сохранился.
Чинить самому или отдать в «аптечку»
Мы уже наступили на эти грабли — вам не придётся
Аптечка: что с проектом?
3 вопроса — и мы скажем, сколько стоит починка. Чек-лист безопасности проекта в подарок.
Интервью с собственником и РОПом, аудит текущей CRM и источников заявок.
1–3 дняВоронки, роли, точки контроля. Согласуем до того, как что-то настраивать.
3–5 днейНастраиваем Битрикс24 и дописываем недостающие инструменты. Демо каждую неделю.
1–4 неделиОбучение, база знаний, поддержка. Дорабатываем, пока цифры не поедут вверх.
дальше — с вамиПодробнееразвёрнутое описание, этапы и нюансы
Есть момент, когда проект на вайб-коде вроде бы работает, но любая новая функция занимает неделю, а ИИ всё чаще ходит по кругу. Обычно это значит, что код перестал быть понятным даже для ИИ. Рефакторинг возвращает проекту структуру, не меняя того, что видит пользователь. Если поломки уже идут каскадом, сначала прочитайте, почему вайб-код ломается и как это остановить.
Почему так происходит
- Каждый чат начинает с нуля. ИИ не помнит, как решили похожую задачу неделю назад, и пишет ещё один вариант.
- Всё в компонентах. Запросы к базе, расчёт цен и проверки прав живут прямо в коде кнопок и страниц.
anyи выключенные проверки. Чтобы ошибка ушла, ИИ ставитany,@ts-ignoreили отключает правило линтера.- Мёртвый код. Старые версии компонентов и функций остаются в проекте и путают и людей, и ИИ.
- Нет соглашений. Названия, структура папок и способ работы с данными меняются от файла к файлу.
- Зависимости без контроля. Каждый чат добавляет свою библиотеку для дат, запросов или форм, и в проекте оказывается по две-три библиотеки на одну задачу, часть из которых давно не используется.
Что проверить самому
- Посчитайте
anyи подавления проверок:
grep -rn ": any\|@ts-ignore\|eslint-disable" src/ | wc -l
- Проверьте, включён ли строгий режим в
tsconfig.json("strict": true). - Запустите поиск неиспользуемых файлов и экспортов, например:
npx knip
- Найдите файлы длиннее 400 строк — это первые кандидаты на разделение.
- Посмотрите, где считается важная логика, например цена заказа. Если в нескольких местах — это дубль, который однажды разойдётся.
- Проверьте, может ли новый человек запустить проект по README за полчаса.
Когда звать разработчика. Самостоятельно стоит начинать с малого: включить проверку типов, удалить явно неиспользуемые файлы, вынести одну повторяющуюся функцию. Если же в проекте сотни any, несколько способов работы с базой, бизнес-логика размазана по компонентам, а тестов нет совсем, массовый рефакторинг силами ИИ почти гарантированно что-то сломает. Здесь нужен человек, который сначала поставит страховку тестами, а затем будет менять структуру по шагам, проверяя каждый.
Как чиним мы
Начинаем с диагностики и карты: что где лежит, какие модули меняются чаще всего и болят сильнее. Фиксируем поведение тестами на ключевые сценарии, включаем проверку типов и линтер в автоматический прогон. Затем постепенно выносим бизнес-логику и работу с данными в отдельный слой, объединяем дубли, удаляем мёртвый код и лишние зависимости, приводим имена и структуру к одному стилю. Каждый шаг — отдельный коммит, после которого проект работает. В конце пишем README и файл правил для ИИ. Подробнее — на странице «Аптечка вайб-кода».
Сколько стоит
Диагностика — 50 000 ₸, доработка и переработка кода — 80 000 ₸, итого от 130 000 ₸ для небольшого проекта. Для средних и больших проектов действует коэффициент размера, а работу можно разбить на этапы по модулям. Рассчитайте в калькуляторе.
Частые вопросы
Не сломает ли рефакторинг то, что работает?
Поэтому он начинается с тестов, которые фиксируют текущее поведение, и идёт маленькими шагами с проверкой после каждого.
Можно ли продолжать работать с ИИ после рефакторинга?
Да, и станет проще: ИИ лучше понимает небольшие модули с понятными именами, а тесты сразу показывают, если он что-то сломал.
Когда всё-таки нужно переписывать?
Когда меняется сама модель данных или стек не подходит под задачу. Даже тогда лучше переписывать по модулям, а не всё разом.
Сделаем так же у вас
Короткий созвон — и вы знаете срок и цену. Или посчитайте сами за 2 минуты.