Рефакторинг с AI без поломки публичного API

Запишите наблюдаемый контракт до изменения внутреннего устройства: входы, выходы, ошибки и значимые побочные эффекты. Совпадение названий функций ещё не означает совместимость.

Где появляется ошибка

Функция поиска раньше возвращала пустой список, если ничего не найдено. Агент выделяет новый слой сервиса и начинает возвращать null. Внутренние тесты проходят, потому что их переписали под новую реализацию. Клиентский экран падает при обходе результата. Сам рефакторинг был разумным, но незаметно изменил поведение, на которое уже опирались потребители.

Рабочее решение

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

Контрольные случаи

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

Совместимость может включать порядок элементов, значения по умолчанию и формат даты. Эти свойства легко потерять при одинаковых именах полей, поэтому примеры ответа полезнее абстрактного обещания «API не менялся».

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

В курсах агентной разработки полезна именно работа с существующими ограничениями продукта, а не только генерация нового проекта. В платном курсе Vibecoding: Claude Code, Codex, Cursor и agentic development можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.

Документация для проверки технических деталей: Семантическое версионирование.

Следующий шаг: AI-разработка: разборы ошибок, изменений и проверки кода. По смежным вопросам: Как передать задачу новому AI-агенту без потери контекста, AI-агент меняет слишком много файлов: как сузить diff.