Снижение сложности кода занимает высокое место, если я буду все упростить, я смогу поддерживать проект лучше и работать над ним быстрее, чтобы добавлять / изменять функции.
Повторное использование - это инструмент, который имеет свои применения, ноне в каждом месте.Я обычно рефакторинг для повторного использования тех компонентов, которые показывают четкую историю идентичного использования более чем в трех местах.В противном случае я рискну столкнуться с необходимостью специализированного поведения в одном или двух местах и в конечном итоге разделить компонент на пару более специализированных, которые имеют похожую структуру, но их будет трудно понять, если их объединить.
Тестируемость - это не то, во что я лично вкладываю много энергии. Однако во многих случаях это происходит из-за уменьшенной сложности кода: если не так много зависимостей и запутанных путей кода, будет меньше опасностей ломать тесты или делатьих сложнее выполнить.
Что касается возможности похвастаться ... ну ... клиенту интересно, насколько хорошо приложение работает с точки зрения того, что он хочет от него, а не с точки зрения того, как"крутой" мой коднуфф сказал