O IntelliJ IDEA, ReSharper, SonarLint e SonarQube encontram os mesmos erros que o PVS-Studio - então, por que precisamos do PVS-Studio?

Às vezes, as pessoas fazem a pergunta, que aborda um determinado tópico, mas na verdade trata de outra coisa. Como diz o ditado, uma pergunta feita com competência contém metade da resposta.

Recentemente, voltei da conferência JPoint , onde apresentamos nosso novo analisador PVS-Studio para Java. O interesse na análise estática está crescendo fortemente nos últimos anos, de modo que o público percebeu o PVS-Studio com entusiasmo. Além do feedback positivo, tivemos que lidar com objeções. A objeção mais frequente à sugestão de experimentar o PVS-Studio é mais ou menos assim: "Vamos lá, por que tentamos o PVS-Studio? Usamos o IntelliJ IDEA, ReSharper, SonarLint e SonarQube. Executamos o PVS-Studio recentemente e encontramos erros, já destacados pelo IntelliJ IDEA! ”

Só não consigo deixar de escrever uma pequena nota de resposta a este comentário. Eu tenho até duas respostas para essa objeção. E sim, afirmei intencionalmente o ReSharper, pois há algumas perguntas para o nosso analisador C # também. Bem, aqui vem a resposta.

Em primeiro lugar, NÃO fabricamos o PVS-Studio copiando os diagnósticos dos concorrentes. A cópia cega sem entender o ponto não leva a lugar algum. O valor da análise de código estático, o valor de seu diagnóstico não é onde emitir um aviso. É onde NÃO emitir um aviso. Temos 10, 20 e ainda mais exceções para cada diagnóstico quando ele não deve ser acionado. Copiar diagnósticos de outros produtos apenas pela descrição na documentação é o mesmo que construir um edifício semelhante por uma foto. A foto do Coliseu será útil se "deuses fazem" você construir a mesma?

Então, nós nunca copiamos. "Mas você tem diagnósticos semelhantes!" - você diria. Claro que sim. Os conceitos de muitos erros estão na superfície. Isso é absolutamente óbvio. Porém, freqüentemente, diagnósticos com as mesmas descrições se comportam de maneira diferente.

Em outras palavras, se você usar um desses produtos no cabeçalho, provavelmente encontrará vários erros NOVOS ao executar o PVS-Studio que não foram detectados por outros produtos. O feedback de nossos clientes e nossa própria experiência de verificação de projetos de código aberto confirmam isso.

Em segundo lugar, mesmo se você usar o IntelliJ IDEA, ReSharper e SonarLint / SonarQube e eles encontrarem os mesmos erros do PVS-Studio no seu código, tenho más notícias para você. Você usa ferramentas que encontram erros, OK. Por que o PVS-Studio encontra erros no seu código que parecem ser encontrados por outras ferramentas? Por que o uso de ferramentas que "detectam tudo da mesma forma que o PVS-Studio" ainda não ajuda a corrigir os erros? Talvez essas ferramentas os deixem ficar sem conserto?

IntelliJ IDEA, ReSharper, SonarLint e SonarQube são ótimas ferramentas, sem exceções. Equipes muito qualificadas os estão criando. Se você usá-los - você faz a coisa certa. Quanto maior o nível da cultura de engenharia - melhor para os negócios.

No entanto, se todas essas ferramentas encontrarem "os mesmos erros do PVS-Studio", mas ainda houver erros no código, você fará algo errado. Introduzir práticas como o uso regular do PVS-Studio em uma equipe. Dessa forma, os erros serão encontrados e corrigidos. A introdução do PVS-Studio fará com que os desenvolvedores consertem os bugs. Mas não apenas os encontre.

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


All Articles