2021-08-01

amarao: (Default)
2021-08-01 12:23 pm

философское

У меня в голове начинает зарождаться метафора "surgical refactoring". Это такой рефакторинг, который проводится на живом пациенте (читай, на проекте с без тестов или с зарождающимися тестами, которые пока ключевые аспекты не покрыли), требует сохранить пациента живым (в терминах, которые может определить только сам пациент и его родные - т.е. "тестов-то нет, есть только пользователи"), и является глубоко интрузивным с целью устранить критическую запутанность внутри.

Рефакторационная выглядит как операционная:
* план рефакторинга
* строгий набор действий, часто повторяющийся: взять переменную отсюда, в 7 (заранее найденных местах) заменить на вот эту, перенести эту переменную отсюда сюда. Повторить для следующих 18 переменных.
* Предельная концентрация, потому что никаких safeguards нет.

После проведения такого рефакторинга обычно уже можно написать тест или чуть-чуть расслабиться, но до - прямо medical emergency чистой воды.