Существуют уровни и уровни рефакторинга.
Я постоянно занимаюсь рефакторингом для устранения дублирования. Я не иду искать для дублирования, но если я вижу это, я исправляю это. Я постоянно использую метод извлечения, чтобы сделать методы меньше, и следую всем советам и предупреждениям ReSharper (я настраиваю ReSharper, чтобы все, что я могу игнорировать, было подсказкой) Это также является преимуществом, потому что вы привыкли видеть красивый веселый зеленый квадрат наверху, который говорит вам, что все хорошо. Когда это другой цвет, вы знаете, что-то не так.
Большие рефакторинги (вид, о котором может беспокоиться OP), я в основном отношусь к ним как к новой функции. Я постараюсь получить консенсус о том, насколько это важно, и составлю соответствующее расписание. Я не буду вносить такие изменения, если только соответствующий код не имеет высокой степени охвата модульных тестов. «Если это не проверено, то оно сломано» - одно из следствий закона Мерфи. Кроме того, если он уже сломан, я не стану усугублять ситуацию, если рефакторинг кода будет плохо освещен.
Я также не занимаюсь рефакторингом, чтобы код соответствовал некоторому шаблону или чтобы его было легче изменить в будущем. Когда наступит будущее, оно придет с некоторыми неудачными юнит-тестами, которые не будут выполнены, пока я не внесу изменения. Если таких тестов нет, я не могу сказать, что мои изменения что-то сломали, поэтому я не буду проводить рефакторинг.