Il mio team ha sviluppato un'applicazione web business da oltre un anno. È iniziato abbastanza piccolo, ma ora sta crescendo sempre più grande. Penso che sia tempo di refactoring.
Guardando il codice, vedo la seguente situazione:
IUserService
- addUser
- deleteUser
- UpdateUser
- addMember
- deleteMember
- updateMember
- registerMember
- deactivateMember
.... - getExpiringMember
- nominateMember
In generale, ci sono circa 50 funzioni per più di 2500 linee di business logic. Una volta ho letto "Clean code", afferma che non ci dovrebbero essere più di 200 linee per una classe normale. Il nostro codice viola seriamente questo requisito e sto iniziando a sentire le difficoltà della gestione del codice.
La soluzione semplice potrebbe essere quella di suddividere questo servizio in molti altri servizi, ma non è fattibile / ragionevole:
-
Questa classe di servizio funge da punto API per il client mobile, in modo che ogni modifica sull'interfaccia (anche la ridenominazione) richieda modifiche anche per il client. Non voglio passare il tempo prezioso della nostra squadra se non per una buona ragione.
-
Ho già diviso una parte di questo servizio in un'altra classe, ma anche quella classe (RegistrationService) è cresciuta abbastanza velocemente e ha raggiunto 500 righe di codice di recente.
-
Di recente, sempre più richieste di business logic, e questi servizi cresceranno ancora di più.
Ho paura che a un certo punto perderemo le tracce se un membro del team che gestisce un servizio specificato è andato in pensione.
C'è un modo per rendere questo servizio più gestibile? Qualche modello di disegno, tecnica di refactoring che posso applicare? Non sono ancora abbastanza esperto in questo campo ... eventuali suggerimenti o indicazioni sono ben accetti.