← Все практикумы

05 · Сопровождение

Безопасный рефакторинг

Заказчик
«Полка», импорт товарного каталога
Вы делаете
программу импорта, которой уже пользуются

Меняете чужую работающую программу так, чтобы её клиенты ничего не заметили: сначала защищаете их обещания тестами, затем по шагам заменяете устройство.

Маршрут

5 заданий

Время

11–16 ч

Бесплатно

первые 2

около 5 ч работы с проверкой и рецензией

Уровень: от junior до senior. Нужно уметь: читать и менять небольшой проект на Python, писать тесты pytest, работать с Git

Начать бесплатно · Python

Чему научитесь

  • Защищать тестами обещанное поведение, а не случайные детали
  • Проверять правку безопасным экспериментом до замены кода
  • Сохранять совместимость и завершать переход

Что будет к концу практикума

Программа импорта каталога в вашем Git-репозитории: тесты, которые защищают договор с клиентами, заменённое устройство, новая машиночитаемая сводка и записанные решения на каждом шаге.

Задания по порядку

Задания развивают один Git-репозиторий: следующее приходит через softpractice update поверх вашего принятого решения. Отдельный проект получает только задание с пометкой «новый проект». Код вы пишете локально, в своём редакторе. Под названием каждого задания — навык, который оно тренирует.

Задания 1–2 — бесплатно

Без подписки: каждое решение проходит тесты и получает рецензию по вашему коду.

  1. 1Защитить то, на что рассчитывают клиентыЗащищать поведение чужой программы собственными тестами: проверять то, что обещано клиентам, и не закреплять случайные детали.2,5 ч
  2. 2Безопасный эксперимент без публикацииОтделять подготовку от эффектов, чтобы проверять изменение без рабочей публикации.2,5 ч

Дальше — по подписке

Подписка открывает остальные задания и весь каталог практикумов.

  1. 3Заменить подготовку и отдельно исправить дефектЗаменять внутренний алгоритм, сравнивая его со старым только там, где старый — образец, и исправлять известный дефект отдельной правкой.3,5 ч
  2. 4Новый результат при живом старом APIДобавлять новую форму результата рядом со старой так, чтобы обе работали на одном правиле, а прежние клиенты не заметили перемены ни на успехе, ни на отказе.2,5 ч
  3. 5Завершить переход и выпустить JSON-сводкуЗавершать переход по доказательствам: находить потребителей временного кода в объявленной области, заменять зависящие от него ожидания и строить новую возможность на готовом результате.2,5 ч

Начните с первых 2 заданий бесплатно

Зарегистрируйтесь, установите CLI и скачайте starter-проект. Если формат подойдёт, подписка откроет продолжение.

Начать бесплатно · Python