Je suis dans une situation où je suis obligé de faire au moins quelques efforts pour supprimer le code jamais utilisé de mon code source. La préférence générale est d'utiliser un outil d'analyse de code statique. Nous avons eu beaucoup de chance avec cela dans d'autres projets, mais les gens que j'entends sont pour la plupart des développeurs C/C++ travaillant sur le code au niveau de l'appareil. Je suis un développeur web travaillant sur un système Java EE. L'outil privilégié pour l'analyse est Coverity Prevent, bien que je pourrais probablement plaider pour quelque chose d'autre si je pouvais faire valoir que c'était plus approprié à la technologie que nous développons avec.Dans quelle mesure l'analyse de code statique fonctionne-t-elle avec Spring et d'autres abstractions?
Je me trouve douteux - quelle est l'effectivité de l'analyse de code statique pour le code mort, lorsque vous utilisez un système avec beaucoup d'abstractions? Par exemple, nous utilisons l'injection de dépendance de Spring, ainsi que JSF. Dans les deux cas, il n'y a pas de moyen facile de suivre les appels de fonctions du début à la fin et de faire une image complète de ce qui est appelé et de ce qui ne l'est pas.
Je suis très préoccupé par le fait que les faux positifs sur une vérification de code mort l'emporteront sur la valeur de l'exécution de l'outil en premier lieu.
Quelle est l'expérience de ce scénario? Avez-vous réussi à obtenir de la valeur à partir d'un outil d'analyse de code statique lorsque votre architecture utilisait beaucoup d'abstractions? Y avait-il quelque chose que vous deviez faire pour le faire fonctionner avec un minimum de faux positifs?
Cela ressemble plus à une question de type wiki communautaire. –