суббота, 12 декабря 2020 г.

Разбор архитектуры, применение паттернов проектирования и рефакторинг по работающему проекту

Преимущества рефакторинга по живой системе по сравнению с рефакторингом по "книжным задачам"

1. не надо вникать в чужую предметную область - работаешь в своей.

2. не надо выдумывать тестовое окружение. Берем состояние кода на текущий момент времени и разбираем его. Код написан предшественниками, коллегами или даже самим программистом, но стихийно и/или давно.

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

4. Код всегда с тобой в исходном коде проекта. Всегда можно подсмотреть, если забыл, как были сделаны те или иные вещи.


Недостатки

Есть риск внесения ошибок. Поэтому рефакторинг я предпочитаю делать маленькими шагами и с повышенным вниманием к тестам.