Io e me siamo stati produttori e manutentori del codice legacy. Se il tuo strumento sta generando "migliaia di violazioni" (o addirittura centinaia per quella materia), dimentica lo strumento, è inapplicabile alla situazione ...
Presumo che gli sviluppatori originali siano spariti da tempo e non siano disponibili per la discussione. Quindi non c'è nessuno che capisca perché e perché del design e dello stile di programmazione. Correggere centinaia o migliaia di violazioni non sarà una questione di riscrivere alcune righe di codice qua e là. Invece, senza dubbio richiede refactoring / ri-funzionale-decomposizione. Provi a farlo con qualsiasi base di codice esistente di grandi dimensioni, senza comprenderne intimamente il design attuale e sei obbligato a presentare una nuova serie di bug / problemi / ecc. Solo una nuova lattina di worm anche peggio di quella che hai ora (o peggio del tuo strumento >> pensa << ora hai).
L'unico approccio ragionevole per affrontare "migliaia di violazioni" sarebbe quello di riscrivere da zero. Uno sforzo lungo e costoso, e quasi impossibile da vendere alla direzione. E in questo caso probabilmente hanno ragione ...
Il codice legacy in genere richiede solo modifiche. Come per y2k, o quando le scorte sono passate dai 256 ° al decimale. Ho fatto un sacco di entrambi quei cr * p. E molte altre cose simili. In genere è piuttosto "preciso" in quanto è possibile "leggere" lo stile a volte cattivo, cattiva decomposizione funzionale, cattivo ecc, e individuare la raccolta di luoghi che devono essere modificati. E poi, ciò che accade "tra quei luoghi", cioè qual è il flusso di più alto livello, può rimanere un mistero per te. Assicurati solo di comprendere la funzionalità localizzata che stai modificando, quindi verifica, verifica, verifica eventuali effetti collaterali, ecc., Le tue conoscenze localizzate non saranno in grado di anticipare.
Se non riesci a vedere il codice come quello, allora potresti non essere la persona migliore per mantenere il codice legacy. Alcune persone possono iniziare con uno schermo vuoto e scrivere bellissimi programmi, ma non possono iniziare con una grande base di codice del codice di altre persone e mantenerlo. Altre persone possono mantenere il codice, ma non possono ricominciare da capo. Alcuni possono fare entrambe le cose. Assicurati che le persone giuste mantengano il tuo codice legacy.
Le volte occasionali in cui potresti voler riprogettare e riscrivere la tua base di codice legacy da zero è quando i requisiti aziendali (o di altro tipo) cambiano in misura tale che i "ritocchi" del posto di lavoro non riescono più a soddisfare i requisiti modificati . E a quel punto, potresti anche iniziare scrivendo un nuovo documento sui requisiti funzionali in primo luogo, assicurandoti che tutte le parti interessate siano a bordo. È fondamentalmente un gioco di baseball completamente nuovo.
L'unica cosa >> sbagliata << cosa da fare è provare a trattare la manutenzione del codice legacy nello stesso modo in cui andresti per il nuovo sviluppo. E quella cosa sbagliata sembra essere esattamente il percorso che vorresti percorrere :) Prendi la mia parola, non è quello che vuoi fare.