Методика проведения рефакторинга

Выделение метода

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

Перемещение метода

В основе Перемещения метода лежит идея о том, что объект должен управлять и изменять свое внутреннее состояние сам( закон Деметра). То есть, если в программе в каком-нибудь объекте встречается метод, который полностью управляет другим обьектом, вынесите этот метод в тот объект с которым нужно проводить эти операции.

Перемещение промежуточных переменных

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

Замена условия полиморфизмом

Этот этап рефакторинга нужно применять в тех случаях, когда в вашем коде появляются громоздкие конструкции с множеством условий.

Нужно ли выделять время на рефакторинг.

По мнению Мартина Фаулера на рефакторинг не нужно уделять какое то фиксированное время, потому что рефакторинг это процесс, который должен проходить одновременно с самим процессом разработки и на протяжении всего времени поддержки программы.

Комментарии

Популярные сообщения из этого блога

Установка утилиты yandex disk для ubuntu

Отправка пост запроса AngularJS