Sono in una situazione in cui mi viene richiesto di fare almeno qualche sforzo per rimuovere il codice mai usato dal mio codice sorgente. La preferenza generale è usare uno strumento di analisi del codice statico. Abbiamo avuto molta fortuna con questo in altri progetti, ma la gente che ho sentito sono per lo più sviluppatori C/C++ che lavorano sul codice di livello del dispositivo.Quanto bene funziona l'analisi del codice statico con Spring e altre astrazioni?
Sono uno sviluppatore web che lavora su un sistema Java EE. Lo strumento preferito per l'analisi è Coverity Prevent, anche se potrei probabilmente sostenere qualcos'altro se potessi dimostrare che era più appropriato alla tecnologia con cui stiamo sviluppando.
Mi trovo dubbioso: qual è l'efficacia dell'analisi del codice statico per il codice morto, quando si esegue un sistema con molte astrazioni? Ad esempio, utilizziamo l'iniezione delle dipendenze di Spring e JSF. In entrambi i casi, non esiste un modo semplice per tracciare le chiamate di funzione dal front end al back end e creare un'immagine completa di ciò che viene chiamato e cosa no.
Sono molto preoccupato per il fatto che i falsi positivi su un controllo di codice morto superino in primo luogo il valore dell'esecuzione dello strumento.
Qual è l'esperienza con questo scenario? Sei riuscito a ottenere valore da uno strumento di analisi del codice statico quando la tua architettura utilizzava molte astrazioni? C'era qualcosa che dovevi fare per farlo funzionare con un minimo di falsi positivi?
Questo sembra più un tipo di domanda wiki della comunità. –