Любой проект, который живет хотя бы несколько лет, обрастает техническим долгом. Выходят новые версии библиотек (и не всегда авторы следуют даже семантическому версионированию), появляются неоптимальные решения, потому что бизнесу «надо вчера». И вот однажды находится герой-программист, который начинает ЕГО — рефакторинг. Чаще всего процесс идёт по канонам известного комикса XKCD: теперь в проекте есть старый код, работающий плохо, и новый... работающий так же плохо. Мы разберёмся, почему так происходит и как этого избежать.