Код рефакторинга обычно заключается в применении более подходящих шаблонов, применении условных обозначений кодирования или повышении производительности. С другой стороны, рефакторинг требует времени и вводит риск включения новых ошибок.Какие критерии используются для определения того, следует ли реорганизовать фрагмент кода или нет?
Какие критерии следует использовать для определения того, следует ли реорганизовать блок кода или нет?
Мои догадки:
- Насколько хорошо тестовое покрытие? Чем больше кода охвачено, тем меньше возможных побочных эффектов рефакторинга.
- Насколько критичен код? Чем важнее это, тем выше влияние ошибок.
- Насколько велика прибыль от рефакторинга? Это кажется очень субъективным. Даже в тех случаях, когда причиной является производительность, более медленная версия может быть лучше поддерживаемой или более понятной.
Какие еще аспекты необходимо оценить и есть ли формула или система для определения этого? Я ищу научные или, по крайней мере, систематические подходы.
EDIT: Я думаю, что вопрос немного от того, что я действительно хотел узнать. Скорее: как только вы обнаружили возможный запах кода, как вы определяете приоритеты и обмениваете его? Что делает один рефакторинг более важным/срочным, чем другим?
Спасибо за понимание. Думаю, я не задал ясного вопроса. Позвольте мне перефразировать это: после того как вы нашли запах кода, как вы решаете, реорганизовать его или нет? Как вы спорите о некотором рефакторинге? Я имею в виду, что в то же время вы могли бы реализовывать функции или фиксировать другие запахи кода. –
тогда определенно зависит от других задач и приоритетов. Конечно, основным приоритетом должны быть задачи по исправлению ошибок, а затем и к другим. Если вам нужно выбрать пару различных мест для рефакторинга, вы должны пойти с тем, который наиболее критичен для решения. Также, если вам нужно реализовать новую функцию, это будет зависеть от того, насколько срочно это реализовать, а затем решить, что делать. К сожалению, на ваш вопрос нет правильного ответа, все зависит от ситуации, проекта, условий, приоритетов и вашего чувства. –
Спасибо! «... что наиболее важно для решения», как вы знаете, что наиболее важно, когда речь заходит о рефакторинге? –