Mi trovo di fronte al problema della migrazione di un'enorme applicazione web java monolitica verso un approccio più orientato ai servizi. L'applicazione è cresciuta per anni da ciò per cui era originariamente progettata e continua a crescere. Ciò significa un sacco di modifiche ai clienti in cui lo sviluppo è sotto pressione, con poche preoccupazioni sulla qualità del codice. Ciò ha portato a una struttura di codice molto molto complessa (nessun packaging modulare, molti elementi ereditari complessi, un mix di funzionalità nelle classi e buono come nessuna documentazione).
Ora la funzionalità passo passo deve essere estratta ed eseguita come servizio.
Sostituzione / Riqualificazione è al momento senza domande. Quindi il codice dovrebbe essere estratto e spostato in modo che possa essere sostituito in seguito con una nuova versione più pulita.
Il problema che ora devo affrontare è che è davvero difficile identificare il codice che rappresenta una funzionalità ed estraendolo senza rompere altre funzionalità o persino l'intera applicazione.
Qualche idea su come posso affrontare questo problema? Sono aperto a tutto.