Metodi di pulizia del codice e / o strumenti di copertura del codice

5

Ho un'applicazione al lavoro, che ho iniziato a lavorare circa 7 anni fa. Questo è stato il mio primo coinvolgimento nelle applicazioni Web ASP.NET e, provenendo da uno sfondo Win32, ho avuto difficoltà a regolare.

Per tutto questo tempo, sia io che il progetto siamo "maturati" e ora gran parte di essi sono ben definiti, adeguatamente strutturati e leggibili. Tuttavia, c'è un pezzo significativo di esso, cioè "vecchia spazzatura". Con ciò intendo il vecchio codice obsoleto, che non funzionava bene, o che non era strutturato correttamente, che è stato sostituito, ma lasciato nei file sorgente invece di essere rimosso. Devo notare qui, che non ero l'unico sviluppatore, ma ho fatto la maggior parte della codifica.

Quello che voglio fare, è ogni volta che ho del tempo libero al lavoro, per rimuovere il vecchio codice obsoleto e inutilizzato. Esistono tecniche / metodologie che posso usare / seguire per farlo in modo più efficiente? Forse qualche strumento?

EDIT: (chiarimento basato sul feedback) Il codice di cui sto parlando non è utilizzato da nessuna parte e non viene chiamato da nessuna parte del progetto. Quello di cui ho bisogno è il modo per scoprire dove risiede il codice, visto che stiamo parlando di un grande numero di codice. Quindi qualcosa in termini di strumenti di copertura del codice potrebbe aiutare. Qualche suggerimento per i progetti asp.net? (il caso particolare è nel modulo di progetto del sito Web)

    
posta Nikos Steiakakis 21.12.2010 - 16:28
fonte

4 risposte

3

Gli strumenti di analisi del codice statico inclusi in Visual Studio troveranno il codice "senza chiamanti upstream". Se non vuoi attivare tutte le regole di analisi del codice per il tuo progetto, cerca le seguenti regole da attivare:

  • CA1811: evita codice privato non richiamato (regole di rendimento)
  • CA1812: Evita classi interne non giustificate (Regole di prestazione)
  • CA1801: esamina i parametri inutilizzati (regole di utilizzo)
  • CA1804: rimuovi le persone non utilizzate (regole sul rendimento)

Non ho idea del motivo per cui alcuni sono nella categoria Performance e altri in Uso, ma queste sono le regole di cui sono a conoscenza per trovare codice inutilizzato in VS.

    
risposta data 21.12.2010 - 17:11
fonte
5

Personalmente, se penso che alcuni codici non debbano esistere, lo commento, quindi eseguo il programma per assicurarmi che non abbia creato alcun problema. Se tutto va bene, elimino il codice commentato.

    
risposta data 21.12.2010 - 16:31
fonte
3

Penso che rimuovere il codice morto ricada ampiamente nella refactoring della definizione di "processo di modifica del codice sorgente di un programma per computer senza modificare il suo comportamento funzionale esterno al fine di migliorare alcuni degli attributi non funzionali del software ".

Esistono alcuni famosi libri sul refactoring.

Forse uno strumento di copertura del codice può essere utile nel tuo caso particolare.

    
risposta data 21.12.2010 - 16:30
fonte
2

Oltre all'analisi del codice di FX Cop / VS (sono la stessa cosa, uno è a riga di comando, uno è nell'IDE) come indicato da altri, NDepend può aiutare. Ti consentirà di eseguire query per determinare tutti i chiamanti e i chiamanti, direttamente sulla catena. Pensa che ti consente di eseguire rapporti sul tuo codice. Non è l'essere tutto e il tutto alla fine, ma ti aiuta a fare diversi passi più vicini a dove vuoi essere almeno.

Il problema fondamentale nel passare all'analisi del codice qui è che i membri pubblici sono difficili da dire in modo definitivo "non utilizzati" per uno strumento. Non ho familiarità con un kit di analisi del codice che ha regole che dicono "Questo gruppo di assiemi rappresenta l'intero ecosistema, quindi se un metodo non viene chiamato da nessuna parte, fammi sapere." Immagino che una volta entrati nei tipi derivati, ciò diventi disordinato per un motore di analisi del codice statico automatizzato.

    
risposta data 21.12.2010 - 17:25
fonte

Leggi altre domande sui tag