Я думаю, что существует множество решающих факторов для рефакторинга кода. Некоторые из них могут быть эстетикой, общей функциональностью или бизнес-процессом.
Например, в настоящее время я работаю над рефакторингом из общей функциональности нескольких наших утилит (Java Swing). Каждая утилита имеет одинаковую строку меню в верхней части. Но если мне нужно добавить пункт меню, мне нужно сделать это для всех утилит (копировать / вставить). Поэтому я создал объект панели меню, и каждая утилита просто использует этот объект. Теперь, если я добавлю пункт меню, все они будут обновлены сразу.
Разработка указанных утилит теперь будет осуществляться в разных местах по всему миру, а не только мной. Так что я пытаюсь сделать еще больше, чтобы когда новый разработчик работал над утилитой, он мог сосредоточиться только на мясе и картошке, а теперь - на аспекте Swing.
Я также реорганизовал несколько процедур проверки данных и вставки данных в меньшие. Это помогает разбить бизнес-логику в приложении и может помочь «зонально» попасть туда, куда вам нужно. Например, в приложении есть шаг, который определяет, можно ли вставить строку в базу данных. Вместо того, чтобы сделать этот один шаг, я сделал это около 10, что включает чтение данных, проверку правильного размера и типа данных, что я показываю в метке и т. Д. Теперь проще изменить бизнес-логику определенного раздела .