Главное, на что следует обратить внимание, — это почему вы хотите провести рефакторинг своего кода. Ответьте на этот вопрос, и вы уже получите половину ответа.
Вы упомянули о желании улучшить ремонтопригодность, что является очень распространенной причиной рефакторинга. Учитывая это в качестве цели, вот некоторые вещи, на которые я бы специально нацелился:
1) Удалите повторяющийся код. Большинство программистов в любом случае стараются этого избежать, но в крупных проектах (особенно в проектах с большими командами) она все равно накапливается. Это легкая цель для рефакторинга.
2) Сделайте простоту своей целью. Четко ли определена каждая функция/метод/класс? Можете ли вы посмотреть на него и очень хорошо понять, что он делает? Если нет, то это хорошая цель для рефакторинга. Хорошими примерами являются модули, которые делают много вещей (или имеют множество побочных эффектов). Подумайте о том, чтобы разбить их на более мелкие модули логически сгруппированных функций.
3) Имена переменных/классов/функций. Ясны ли они? Они не обязательно должны быть длинными, но они должны четко давать понять вам (или тому, кто поддерживает код), для чего предназначена переменная или что делает функция. Если есть какие-то неясные, подумайте о том, чтобы переименовать их.
4) У вас есть код, который никогда не вызывается? Возможно, стоит уйти, если вы думаете, что будете использовать его позже. В противном случае это просто отвлекающий маневр для любых сопровождающих. Стоит подумать об избавлении от него.
5) Повышение производительности. У вас может быть или не быть времени для полной алгоритмической перезаписи (лучшее повышение производительности). Тем не менее, это хорошее время, чтобы проверить простые вещи. В качестве примера C++, вы передаете классы как константные ссылки или по значению? Первый гораздо более эффективен, когда вы можете обойтись без него (что составляет 95% времени).
Удачи вам в рефакторинге!
[Изменить] Кроме того, я присоединяюсь ко всем ниже с рекомендацией, чтобы вы написали модульные тесты перед рефакторингом, чтобы убедиться, что ваш код остается правильным.
person
Russell Newquist
schedule
05.11.2009