
A veces las personas hacen una pregunta que, a primera vista, se trata de una cosa, pero en realidad de otra. Como dicen, una pregunta bien formulada contiene la mitad de la respuesta.
El otro día, regresé de la conferencia
JPoint , en la cual se presentó por primera vez nuestro nuevo analizador PVS-Studio para Java. El interés en el análisis estático ha crecido rápidamente en los últimos años, por lo que la audiencia tomó PVS-Studio con fuerza. Además de los comentarios positivos, por supuesto, tuve que trabajar con objeciones. La objeción más común a la oferta de probar PVS-Studio es: “Vamos, ¿por qué deberíamos probar PVS-Studio? Utilizamos IntelliJ IDEA, ReSharper, SonarLint y SonarQube. ¡Así que recientemente lanzamos PVS-Studio, y encontró errores que IntelliJ IDEA ya destaca!
Simplemente no puedo evitar escribir una pequeña nota-respuesta a este comentario. Más precisamente, incluso tengo dos respuestas a esta objeción. Y sí, señalé específicamente ReSharper aquí, ya que esas preguntas también se aplican a nuestro analizador para C #. Bueno, responderé con mucho gusto.
En primer lugar, NO hacemos PVS-Studio copiando los diagnósticos de la competencia. Copiar a ciegas sin comprender la esencia no lleva a ninguna parte. El valor del análisis de código estático, el valor de sus diagnósticos no es dónde arrojar un error. Y donde NO es rendirse. Para cada uno de nuestros diagnósticos, tenemos 10, 20 o incluso más excepciones, cuando no es necesario disparar. Copiar diagnósticos de otros productos solo de acuerdo con su descripción en la documentación es como tratar de construir el mismo edificio usando una fotografía. ¿La foto del Coliseo te ayudará si de repente los "dioses te hacen" construir lo mismo?
Por lo tanto, nunca copiamos. "¡Pero tienes los mismos diagnósticos!" - usted dice Por supuesto que lo hay. Las ideas de muchos errores yacen en la superficie. Esto es absolutamente obvio. Pero a menudo los diagnósticos con la misma descripción incluso se comportan de manera diferente.
En otras palabras, si utiliza cualquiera de los productos indicados en el encabezado, al iniciar PVS-Studio puede ser que encuentre un montón de NUEVOS errores que otros productos no detectaron. La experiencia de nuestros clientes y la experiencia de verificar proyectos abiertos lo confirman.
En segundo lugar, incluso si usa IntelliJ IDEA, ReSharper y SonarLint / SonarQube, y encuentran los mismos errores en su código que PVS-Studio, entonces tengo malas noticias para usted. Utiliza herramientas que encuentran errores, está bien. Pero, ¿por qué PVS-Studio encuentra errores en su código que parecen ser encontrados por todas estas herramientas? ¿Por qué al usar herramientas que "al igual que PVS-Studio encontrará todo", los errores no se corrigen? ¿Quizás estas herramientas PERMITEN que no se editen?
Tanto IntelliJ IDEA, ReSharper y SonarLint con SonarQube son muy buenas herramientas. Están hechos por equipos altamente calificados. Y si los usas, estás haciendo todo bien. Cuanto mayor sea el nivel de cultura de ingeniería en el proyecto, mejor para el negocio.
Pero si todas estas herramientas "encuentran los mismos errores que PVS-Studio" y los errores aún están en el código, entonces está haciendo algo mal. Implemente una práctica de equipo como el uso regular de PVS-Studio. Y luego los errores no solo se encontrarán, sino que también se corregirán. La implementación de PVS-Studio FORZARÁ a los desarrolladores a corregir errores. Y no solo encontrarlos.

Si desea compartir este artículo con una audiencia de habla inglesa, utilice el enlace a la traducción: Evgeniy Ryzhkov.
IntelliJ IDEA, ReSharper, SonarLint y SonarQube encuentran los mismos errores que PVS-Studio, entonces, ¿por qué necesitamos PVS-Studio?