Il problema con questo progetto è che non vuoi cambiare il codice senza aggiungere test di unità, ma di solito non puoi e test di unità senza cambiare il codice.
Se il tuo progetto è come un tipico progetto legacy, allora hai classi grandi con molte funzioni davvero lunghe, senza un ruolo chiaro.
La mia strategia è la seguente:
- Cerca di identificare i ruoli di una grande classe (di solito ce ne sono una dozzina).
- Prova a spaccare la classe insieme a questi ruoli. Inizia con il più semplice. Prova a modificare il minor numero possibile di codici, spostando principalmente le funzioni sulle nuove classi.
- Ogni volta che viene completato un blocco, prova manualmente.
- Se sei riuscito a scomporre una classe più piccola, aggiungi i test unitari e continua con il successivo.
Questo è un processo davvero lungo e impegnativo, e non ci sono bullets argentati. Solitamente cambio molto le mie modifiche e riprovo con un approccio diverso. E i test manuali sono davvero importanti. La cosa migliore è se hai qualcuno che ha usato molto questo software e può controllare se funziona davvero come prima.
Buona fortuna con questo!