
A veces las personas hacen la pregunta, que aborda un tema determinado pero en realidad trata sobre otra cosa. Como dice el dicho, una pregunta competente contiene la mitad de la respuesta.
Recientemente regresé de la conferencia
JPoint , donde presentamos nuestro nuevo analizador PVS-Studio para Java. El interés en el análisis estático está creciendo fuertemente en los últimos años, por lo que la audiencia percibió con entusiasmo a PVS-Studio. Además de los comentarios positivos, como sucede, tuvimos que manejar las objeciones. La objeción más frecuente a la sugerencia de probar PVS-Studio suena así: "Vamos, ¿por qué intentamos PVS-Studio? Utilizamos IntelliJ IDEA, ReSharper, SonarLint y SonarQube. ¡Hemos ejecutado PVS-Studio recientemente y encontró errores, ya resaltados por IntelliJ IDEA! ”
Simplemente no puedo evitar escribir una pequeña nota de respuesta a este comentario. Incluso tengo dos respuestas a esta objeción. Y sí, dije ReSharper intencionalmente, ya que también hay algunas preguntas para nuestro analizador C #. Bueno, aquí viene la respuesta.
En primer lugar, NO hacemos PVS-Studio copiando los diagnósticos de la competencia. Copiar a ciegas sin entender el punto 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 emitir una advertencia. Es donde NO emitir una advertencia. Tenemos 10, 20 e incluso más excepciones para cada diagnóstico cuando no debe activarse. Copiar los diagnósticos de otros productos simplemente por su descripción en la documentación es lo mismo que construir un edificio similar con una foto. ¿Será útil la foto del Coliseo si "los dioses te hacen" construir la misma?
Entonces nunca copiamos. "¡Pero tienes diagnósticos similares!" - dirías tú. Por supuesto que lo hacemos. Los conceptos de muchos errores se encuentran en la superficie. Es absolutamente obvio. Pero con frecuencia, los diagnósticos con las mismas descripciones incluso se comportan de manera diferente.
En otras palabras, si usa uno de estos productos en el encabezado, lo más probable es que encuentre un montón de NUEVOS errores al ejecutar PVS-Studio que no han sido detectados por otros productos. Tanto los comentarios de nuestros clientes como nuestra propia experiencia en la verificación de proyectos de código abierto lo confirman.
En segundo lugar, incluso si usa IntelliJ IDEA, ReSharper y SonarLint / SonarQube y encuentran los mismos errores que PVS-Studio en su código, tengo malas noticias para usted. Utiliza herramientas que encuentran errores, está bien. ¿Por qué PVS-Studio encuentra errores en su código que parecen ser encontrados por otras herramientas? ¿Por qué el uso de herramientas, que "detectarán todo igual que PVS-Studio" todavía no ayuda a corregir los errores? ¿Quizás estas herramientas simplemente DEJEN que se queden sin arreglar?
IntelliJ IDEA, ReSharper, SonarLint y SonarQube son excelentes herramientas sin excepciones. Los equipos muy altamente calificados los están haciendo. Si los usas, haces lo correcto. Cuanto mayor sea el nivel de la cultura de la ingeniería, mejor para los negocios.
Sin embargo, si todas estas herramientas encuentran "los mismos errores que PVS-Studio", pero todavía hay errores en el código, usted hace algo mal. Introduzca prácticas como el uso regular de PVS-Studio en un equipo. De esta manera, los errores serán encontrados y corregidos. La introducción de PVS-Studio HARÁ que los desarrolladores corrijan los errores. Pero no solo encontrarlos.