Pregunta

¿Existen herramientas para realizar análisis estáticos de código Scala, similares a FindBugs y PMD para Java o Splint para C/C++?Sé que FindBugs funciona con el código de bytes producido al compilar Java, así que tengo curiosidad por saber cómo funcionaría en Scala.

Las búsquedas en Google (al 27 de octubre de 2009) revelan muy poco.

Las búsquedas en Google (al 1 de febrero de 2010) revelan esta pregunta.

¿Fue útil?

Solución

FindBugs analiza códigos de bytes de JVM, independientemente de la herramienta que las generó. He intentado usar FindBugs para comprobar .class archivos generados por Scala. Por desgracia, FindBugs producen muchas advertencias, incluso para los programas Scala triviales.

Otros consejos

Ahora hay Scalastyle el que hace el trabajo que hace Checkstyle para Java. Esto incluye no sólo el formato de cheques, pero también algunos cheques para fuentes conocidas de insectos, tales como una clase que es igual a implementos hashCode (), pero no.

Actualmente hay alrededor de 40 cheques, pero todos ellos están añadiendo parte del tiempo.

Para obtener más información, consulte www.scalastyle.org .

Hay algunas obras en esa dirección. Algunos enlaces:

También hay una discusión en la lista de correo Scala, archivo disponible aquí .

Esta es una respuesta actualizada a partir de agosto 2014 por algunos que tienen por objeto o bien con el trabajo Scala.

En lo personal creo que los JVM Java o terminan con demasiados falsos positivos, o que las inspecciones que se dirigen principalmente a las clases específicas de Java. Por ejemplo, ya que en Scala no tienden a utilizar las colecciones de Java, no se necesitan todas las inspecciones basadas en la colección findbugs. Otro ejemplo es las inspecciones para el uso de los campos estáticos que son irrelevantes en Scala.

Findbugs y otras herramientas basadas en código de bytes funcionarán, en el sentido de que encontrarán fallas en su código.Desafortunadamente, los enfoques basados ​​en código de bytes se han adaptado a la salida de los compiladores javac, lo que significa que es probable que produzcan tasas muy altas de falsos positivos y pasen por alto problemas básicos, porque Scala producirá modismos diferentes a los del compilador javac.

Estoy teniendo un montón de diversión con Codacy (por ejemplo, https: // www. codacy.com/app/hejfelix/Frase/dashboard ) para proyectos Open Source

Hay un plugin para el SBT PMD copiar y pegar detector de CPD.

https://github.com/sbt/cpd4sbt

Detector de copiar y pegar Scala, basado en AST. Buscando subárboles / AST copia-pegar, e informar al respecto.

Se Plugin para SBT.

https://github.com/ajtkulov/scala-cpd

No sé mucho sobre Scala pero si es compatible con Java trabajo podría Solo producto de Klocwork. Puede encontrar aquí Klocwork Solo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top