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

Quadro 1 Às vezes, as pessoas fazem uma pergunta que, à primeira vista, é sobre uma coisa, mas na verdade sobre outra. Como se costuma dizer, uma pergunta bem colocada contém metade da resposta.

Outro dia, voltei da conferência JPoint , na qual nosso novo analisador PVS-Studio para Java foi apresentado pela primeira vez. O interesse na análise estática tem crescido rapidamente nos últimos anos, então o público levou o PVS-Studio com um estrondo. Além do feedback positivo, é claro, eu tive que trabalhar com objeções. A objeção mais comum à oferta de experimentar o PVS-Studio é: “Vamos lá, por que devemos experimentar o PVS-Studio? Usamos o IntelliJ IDEA, ReSharper, SonarLint e SonarQube. Por isso, lançamos recentemente o PVS-Studio e ele encontrou erros que o IntelliJ IDEA já destaca! ”

Eu simplesmente não posso deixar de escrever uma pequena nota-resposta a este comentário. Mais precisamente, tenho até duas respostas para essa objeção. E sim, eu indiquei especificamente o ReSharper aqui, pois essas perguntas também se aplicam ao nosso analisador para C #. Bem, eu vou responder com prazer.

Em primeiro lugar, NÃO fazemos o PVS-Studio copiando os diagnósticos dos concorrentes. A cópia cega sem entender a essência 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 lançar um erro. E onde não é para dar. Para cada um de nossos diagnósticos, temos 10, 20 ou mais exceções, quando não é necessário acionar. Copiar diagnósticos de outros produtos somente de acordo com sua descrição na documentação é como tentar construir o mesmo edifício usando uma fotografia. Fortemente, a foto do Coliseu o ajudará se, de repente, os “deuses fazem” você construir o mesmo?

Portanto, nunca copiamos. "Mas você tem o mesmo diagnóstico!" você diz. Claro que existe. As idéias de muitos erros estão na superfície. Isto é absolutamente óbvio. Mas frequentemente os diagnósticos com a mesma descrição se comportam de maneira diferente.

Em outras palavras, se você usar qualquer um dos produtos indicados no cabeçalho, ao iniciar o PVS-Studio, é muito provável que você encontre vários erros NOVOS que não foram detectados por outros produtos. A experiência de nossos clientes e a experiência de verificar projetos abertos confirmam isso.

Em segundo lugar, mesmo se você usar o IntelliJ IDEA, ReSharper e SonarLint / SonarQube, e eles encontrarem os mesmos erros no seu código que o PVS-Studio, então tenho más notícias para você. Você usa ferramentas que encontram erros, OK. Mas por que o PVS-Studio encontra bugs no seu código que parecem ser encontrados por todas essas ferramentas? Por que, ao usar ferramentas que "como o PVS-Studio encontrarão tudo", os erros não são corrigidos? Talvez essas ferramentas permitam que elas não sejam editadas?

Tanto IntelliJ IDEA, ReSharper e SonarLint com SonarQube são ferramentas muito boas. Eles são feitos por equipes altamente qualificadas. E se você usá-los, você está fazendo tudo certo. Quanto maior o nível de cultura de engenharia no projeto, melhor para os negócios.

Mas se todas essas ferramentas “encontrarem os mesmos erros que o PVS-Studio” e os erros ainda estiverem no código, você estará fazendo algo errado. Implemente uma prática de equipe como o uso regular do PVS-Studio. E então os erros não serão apenas encontrados, mas também corrigidos. A implementação do PVS-Studio forçará os desenvolvedores a corrigir erros. E não apenas encontrá-los.



Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Evgeniy Ryzhkov. IntelliJ IDEA, ReSharper, SonarLint e SonarQube encontram os mesmos erros que o PVS-Studio - então, por que precisamos do PVS-Studio?

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


All Articles