← Вайбкодинг · Вайбкодинг с OpenCode EN FR Курс 30/70 →

Модуль 07 — Практика: миграция без красных тестов

Время: 210 минут · Артефакт: labs/07-refactor/


Задание 1. Карта зависимостей (25 мин)

Выберите функцию/класс, который хотите заменить. Постройте карту:

grep -rn "old_name" --include=*.py .

Оформите таблицу:

Файл Строка Что делает Риск

Приёмка: карта полная (сверьте с grep ещё раз), риски расставлены.


Задание 2. План миграции (25 мин)

Напишите план из 5–7 шагов, каждый:

  • меняет ≤ 2 файла;
  • заканчивается ./scripts/check.sh;
  • имеет свой коммит.

Приёмка: план утверждён вами до начала работы (зафиксируйте в отчёте).


Задание 3. Пошаговая миграция (90 мин)

Выполняйте шаги по плану. После каждого:

./scripts/check.sh
git add -A && git commit -m "step N: <что сделано>"

Правила для агента:

Работаем по одному шагу плана. После шага остановись и покажи дифф.
Файлы вне <путь> не трогай. Публичные сигнатуры не меняй.

Приёмка: минимум 3 шага, каждый с зелёными тестами и коммитом. В отчёте — git log --oneline и git diff --stat по всей миграции.


Задание 4. Проверка на откат (25 мин)

Сломайте один шаг намеренно (агенту: «попробуй сделать шаг 4 сразу вместе с шагом 5»). Посмотрите, сколько файлов затронуто и сколько тестов упало. Откатите:

git reset --hard HEAD~1

Приёмка: в отчёте — сравнение «по одному» vs «всё сразу»: число файлов, число падений, время на разбор.


Задание 5. Удаление мёртвого кода (45 мин)

После миграции:

Старый код больше не используется. Найди все ссылки на <old_name>,
удали их и сам код. Если что-то ещё использует — остановись и покажи список.

Приёмка: тесты зелёные, grep по старому имени пуст, дифф просмотрен.


Критерии сдачи

  • Карта зависимостей полная.
  • План на 5+ шагов, утверждён до работы.
  • ≥ 3 шага с зелёными тестами и коммитами.
  • Эксперимент «всё сразу» + откат.
  • Мёртвый код удалён, репозиторий зелёный.