05 · Сопровождение
Безопасный рефакторинг
- Заказчик
- «Полка», импорт товарного каталога
- Вы делаете
- программу импорта, которой уже пользуются
Меняете чужую работающую программу так, чтобы её клиенты ничего не заметили: сначала защищаете их обещания тестами, затем по шагам заменяете устройство.
Маршрут
5 заданий
Время
11–16 ч
Бесплатно
первые 2
около 5 ч работы с проверкой и рецензией
Уровень: от junior до senior. Нужно уметь: читать и менять небольшой проект на Python, писать тесты pytest, работать с Git
Начать бесплатно · PythonЧему научитесь
- Защищать тестами обещанное поведение, а не случайные детали
- Проверять правку безопасным экспериментом до замены кода
- Сохранять совместимость и завершать переход
Что будет к концу практикума
Программа импорта каталога в вашем Git-репозитории: тесты, которые защищают договор с клиентами, заменённое устройство, новая машиночитаемая сводка и записанные решения на каждом шаге.
Задания по порядку
Задания развивают один Git-репозиторий: следующее приходит через softpractice update поверх вашего принятого решения. Отдельный проект получает только задание с пометкой «новый проект». Код вы пишете локально, в своём редакторе. Под названием каждого задания — навык, который оно тренирует.
Задания 1–2 — бесплатно
Без подписки: каждое решение проходит тесты и получает рецензию по вашему коду.
- 1Защитить то, на что рассчитывают клиентыЗащищать поведение чужой программы собственными тестами: проверять то, что обещано клиентам, и не закреплять случайные детали.2,5 ч
- 2Безопасный эксперимент без публикацииОтделять подготовку от эффектов, чтобы проверять изменение без рабочей публикации.2,5 ч
Дальше — по подписке
Подписка открывает остальные задания и весь каталог практикумов.
- 3Заменить подготовку и отдельно исправить дефектЗаменять внутренний алгоритм, сравнивая его со старым только там, где старый — образец, и исправлять известный дефект отдельной правкой.3,5 ч
- 4Новый результат при живом старом APIДобавлять новую форму результата рядом со старой так, чтобы обе работали на одном правиле, а прежние клиенты не заметили перемены ни на успехе, ни на отказе.2,5 ч
- 5Завершить переход и выпустить JSON-сводкуЗавершать переход по доказательствам: находить потребителей временного кода в объявленной области, заменять зависящие от него ожидания и строить новую возможность на готовом результате.2,5 ч
Начните с первых 2 заданий бесплатно
Зарегистрируйтесь, установите CLI и скачайте starter-проект. Если формат подойдёт, подписка откроет продолжение.
Начать бесплатно · Python