IntelliJ IDEA, ReSharper, SonarLint et SonarQube trouvent les mêmes erreurs que PVS-Studio - eh bien, pourquoi avons-nous besoin de PVS-Studio?

Image 1 Parfois, les gens posent une question qui, à première vue, concerne une chose, mais en fait une autre. Comme on dit, une question bien posée contient la moitié de la réponse.

L'autre jour, je suis revenu de la conférence JPoint , au cours de laquelle notre nouvel analyseur PVS-Studio pour Java a été présenté pour la première fois. L'intérêt pour l'analyse statique a augmenté rapidement au cours des dernières années, de sorte que le public a pris PVS-Studio avec fracas. En plus des retours positifs, bien sûr, j'ai dû travailler avec des objections. L'objection la plus courante à l'offre d'essayer PVS-Studio est: «Allez, pourquoi devrions-nous essayer PVS-Studio? Nous utilisons IntelliJ IDEA, ReSharper, SonarLint et SonarQube. Nous avons donc récemment lancé PVS-Studio, et il a trouvé des erreurs que IntelliJ IDEA met déjà en évidence! »

Je ne peux pas m'empêcher d'écrire une petite note-réponse à ce commentaire. Plus précisément, j'ai même deux réponses à cette objection. Et oui, j'ai spécifiquement souligné ReSharper ici, car ces questions s'appliquent également à notre analyseur pour C #. Eh bien, je répondrai avec plaisir.

Premièrement, nous NE faisons PAS PVS-Studio en copiant les diagnostics des concurrents. La copie aveugle sans comprendre l'essence ne mène nulle part. La valeur de l'analyse de code statique, la valeur de ses diagnostics n'est pas où jeter une erreur. Et où il ne faut PAS abandonner. Pour chacun de nos diagnostics, nous avons 10, 20, voire plus d'exceptions, quand il n'est pas nécessaire de se déclencher. Copier les diagnostics d'autres produits uniquement en fonction de leur description dans la documentation, c'est comme essayer de construire le même bâtiment en utilisant une seule photographie. Vivement la photo du Colisée vous aidera si tout d'un coup les «dieux font» que vous construisez la même chose?

Par conséquent, nous ne copions jamais. "Mais vous avez les mêmes diagnostics!" - dites-vous. Bien sûr que oui. Les idées de nombreuses erreurs se trouvent à la surface. C'est absolument évident. Mais souvent, les diagnostics avec la même description se comportent même différemment.

En d'autres termes, si vous utilisez l'un des produits indiqués dans l'en-tête, alors au démarrage de PVS-Studio, il se peut très bien que vous trouviez un tas de NOUVELLES erreurs qui n'ont pas été détectées par d'autres produits. L'expérience de nos clients et l'expérience de la vérification des projets ouverts le confirment.

Deuxièmement, même si vous utilisez IntelliJ IDEA, ReSharper et SonarLint / SonarQube, et qu'ils trouvent les mêmes erreurs dans votre code que PVS-Studio, alors j'ai de mauvaises nouvelles pour vous. Vous utilisez des outils qui trouvent des erreurs, OK. Mais pourquoi PVS-Studio trouve-t-il dans votre code des bogues qui semblent être trouvés par tous ces outils? Pourquoi lors de l'utilisation d'outils qui "tout comme PVS-Studio trouvera tout", les erreurs ne sont pas corrigées? Peut-être que ces outils leur permettent de ne pas être modifiés?

IntelliJ IDEA, ReSharper et SonarLint avec SonarQube sont de très bons outils. Ils sont réalisés par des équipes hautement qualifiées. Et si vous les utilisez, vous faites tout correctement. Plus le niveau de culture d'ingénierie du projet est élevé, mieux c'est pour l'entreprise.

Mais si tous ces outils «trouvent les mêmes erreurs que PVS-Studio» et que les erreurs sont toujours dans le code, alors vous faites quelque chose de mal. Mettre en œuvre une pratique d'équipe telle que l'utilisation régulière de PVS-Studio. Et puis les erreurs seront non seulement trouvées, mais aussi corrigées. L'implémentation de PVS-Studio obligera les développeurs à corriger les erreurs. Et pas seulement les trouver.



Si vous souhaitez partager cet article avec un public anglophone, veuillez utiliser le lien vers la traduction: Evgeniy Ryzhkov. IntelliJ IDEA, ReSharper, SonarLint et SonarQube trouvent les mêmes erreurs que PVS-Studio - alors pourquoi avons-nous besoin de PVS-Studio?

Source: https://habr.com/ru/post/fr449174/


All Articles