Ответ вслух Middle SOLID и принципы обновлено

Работа с легаси

Вопрос

Как подходить к большому легаси-коду, который надо менять?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

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

Что должно прозвучать в ответе

  • сначала понять, почему код такой - обычно были причины

  • закрепить поведение тестами до изменений

  • менять маленькими шагами, а не переписывать целиком

  • душитель: новое рядом со старым, постепенный перевод трафика

  • переписывание с нуля почти всегда дороже и теряет накопленные краевые случаи

  • мерять до и после, чтобы было чем обосновать

Что могут спросить следом

  • Что такое тест характеристики
  • Как убедить менеджера выделить время на рефакторинг
  • Когда переписывание с нуля всё-таки правильный выбор

Разбор

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

Дальше - маленькими шагами. Паттерн «душитель»: новый код живёт рядом со старым, кусок функциональности переводится, старый путь удаляется. Так сохраняется работающий прод на каждом шаге.

Полное переписывание почти всегда дороже оценки и теряет годы накопленных мелочей. Оно оправдано, только когда меняется сама платформа.

И обязательно измерять до и после - иначе рефакторинг нечем защитить перед менеджером.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.