web-dev-qa-db-ja.com

Scalaの静的解析ツールの現状はどうですか?

Scalaの静的解析に関するStackOverflowの質問を見ましたが、2009年に回答されました。ご存知のように、Scalaツールは非常に急速に変化しています。

したがって、Scalaの静的解析ツールの現在の状態に精通している人が、Scalaに相当するFindbugsがあるかどうかを教えてくれるかどうか疑問に思いました。FindbugsはScalaに多くの不必要な警告を発行するおそらく、特性などにより、「オブジェクト」シングルトンがバイトコードにコンパイルされる方法に関係しています。Scalastyleは、JavaのCheckStyleのScalaバージョンではなく、 FindbugsとPMDの一部ですが、FindbugsやPMDのすべてを実装していない場合、それを補う他のツールはありますか?または、Scalastyleはスタイルチェックだけでなく、コード品質の向上にも適していますか?

また、たとえばSonarとScalaの統合についてはどうですか? Scala Sonarプラグイン(Scalastyleで動作します)は信頼できますか?

59
marekinfo

以下は、Scalaを対象とするか、Scalaでうまく機能する一部のユーザー向けの2014年8月現在の更新された回答です。

個人的には、JVMまたはJavaの誤検出が多すぎるか、Java固有のクラスを主に対象とした検査があると思います。たとえば、ScalaではJavaコレクションを使用する傾向がないため、findbugsコレクションベースの検査は不要です。もう1つの例は、Scalaに関係のない静的フィールドの使用の検査です。

60
monkjack

wartremover は代替としてカウントされますか?また、-Xlintおよび-Ywarn-adapted-args scalacのコマンドラインパラメーターは、特定の種類のバグの検出に役立つ場合があります。

8
Gábor Bakos

Codacy カスタマイズしやすいツールを開発しました-scala-meta: https://github.com/codacy/codacy-scalameta

ご覧ください

そして、私は find-sec-bugs がscalaをいくらかサポートしていると思う

4
pedrorijo91

Codacyによると、ツールは次のとおりです(2015年10月まで更新)

  1. ScalaStyle
  2. WartRemover
  3. 順守
  4. Scapegoat -sbt-scapegoatはScala 2.11.x +で動作します

ソース: Caddacy blog Scala Static Analysis tools

1

非常に強力なScalacコンパイラを使用してみませんか?例えば。いくつかの便利なオプションがあります。

  • -未チェック
  • -廃止
  • -特徴

...等。

0
Mitrakov Artem