web-dev-qa-db-fra.com

Quel est l'état actuel des outils d'analyse statique pour Scala?

J'ai vu une question StackOverflow concernant l'analyse statique dans Scala, mais celle-ci a été répondue en 2009. Comme vous le savez, les outils Scala changent très rapidement.

Je me demandais donc si quelqu'un connaissant l'état actuel des outils d'analyse statique dans Scala pourrait me dire s'il y a, par exemple, un équivalent de Findbugs pour Scala. J'ai trouvé que Findbugs émet de nombreux avertissements inutiles pour Scala , probablement en rapport avec la façon dont le singleton "objet" se compile en bytecode, en raison de traits, etc. J'ai entendu dire que Scalastyle n'est pas seulement une version Scala de CheckStyle de Java, qu'il inclut également des morceaux de Findbugs et PMD. Mais s'il n'implémente pas tous les Findbugs et/ou PMD, y a-t-il d'autres outils qui le complètent? Ou, Scalastyle est-il bon non seulement pour la vérification de style, mais est-il bon pour améliorer la qualité du code?

Et qu'en est-il de l'intégration de Scala avec, disons, Sonar? Le plug-in Scala Sonar (qui fonctionne avec Scalastyle) est-il fiable?

59
marekinfo

Voici une réponse mise à jour en août 2014 pour certains qui visent ou fonctionnent bien avec Scala.

Personnellement, je pense que la JVM ou les Java uns finissent avec beaucoup trop de faux positifs, ou ont des inspections qui visent principalement Java des classes spécifiques. Par exemple, car dans Scala nous n'avons pas tendance à utiliser les collections Java, toutes les inspections basées sur la collection findbugs ne sont pas nécessaires. Un autre exemple est les inspections pour l'utilisation de champs statiques non pertinents dans Scala.

60
monkjack

Le wartremover serait-il considéré comme une alternative? Aussi -Xlint et -Ywarn-adapted-args Les paramètres de ligne de commande de scalac peuvent aider à détecter certains types de bogues.

8
Gábor Bakos

Codacy a développé un outil facile à personnaliser - scala-meta: https://github.com/codacy/codacy-scalameta

regarde

et je pense find-sec-bugs a un certain support pour scala

4
pedrorijo91

Selon Codacy, voici les outils (mis à jour jusqu'en octobre 2015)

  1. ScalaStyle
  2. WartRemover
  3. Rester
  4. Scapegoat - sbt-scapegoat fonctionne avec Scala 2.11.x +

Source: Blog Codacy sur Scala Outils d'analyse statique

1

Pourquoi n'aimez-vous pas utiliser un compilateur Scalac très puissant? Par exemple. il a quelques options utiles, par exemple.

  • -contrôlé
  • -désapprobation
  • -fonctionnalité

...etc.

0
Mitrakov Artem