Sto lavorando su un'applicazione (progetto per hobby, programmatore solista, dimensioni medio-piccole) e di recente ho ridisegnato una parte significativa di esso. Il programma funziona già nel suo stato attuale, ma ho deciso di reimplementare le cose per migliorare il design OO.
Sto per implementare questo nuovo design rifattorizzando gran parte dell'applicazione. Il fatto è che non sono sicuro da dove cominciare. Ovviamente, per la natura di un riarrangiamento, nel momento in cui modifichi una parte del programma, molte altre parti (almeno temporaneamente) si spezzano. Quindi è un po '"spaventoso" riorganizzare qualcosa in un software che funziona già.
Chiedo consigli o alcune linee guida generali: come devo affrontare un refactoring significativo? Quando ti avvicini riordinando grandi parti della tua applicazione, da dove inizi?
Tieni presente che sono interessato solo a riorganizzare la struttura di alto livello dell'app. Non ho intenzione di riscrivere gli algoritmi locali.