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