Domanda

Ci sono strumenti per l'esecuzione di analisi statica del codice Scala, simili a FindBugs e PMD per Java o stecca per C / C ++? So che FindBugs lavora sul bytecode prodotto dalla compilazione Java, quindi sono curioso di vedere come avrebbe funzionato su Scala.

ricerche di Google (a partire dal 27 ottobre 2009) rivelano molto poco.

ricerche di Google (come dal 01 febbraio 2010) rivelano a questa domanda.

È stato utile?

Soluzione

FindBugs analizza bytecode JVM, indipendentemente dallo strumento che li ha generati. Ho provato con FindBugs per controllare i file generati da Scala .class. Purtroppo, FindBugs ha prodotto molti avvertimenti, anche per i programmi di Scala banali.

Altri suggerimenti

V'è ora Scalastyle che fa il lavoro che fa per Checkstyle Java. Questo include non solo la formattazione controlli, ma anche alcuni controlli per le fonti conosciute di insetti, come ad esempio una classe che implementa hashCode (), ma non è uguale.

Al momento non ci sono circa 40 controlli, ma stiamo tutti aggiungendo il tempo.

Per ulteriori informazioni, consultare www.scalastyle.org .

C'è un po 'di lavori in corso in quella direzione. Alcuni link:

C'è anche una discussione sulla scala mail list, archivio disponibili qui .

Ecco una risposta aggiornata a partire da agosto 2014 per alcuni che hanno lo scopo o funziona bene con Scala.

Personalmente penso che quelli JVM o Java finire con troppi falsi positivi, o hanno le ispezioni che mirano per lo più a specifiche classi Java. Ad esempio, dal momento che in Scala non tendono ad usare la collezioni di Java, non sono necessari tutti i controlli findbugs collezione basata. Un altro esempio sono i controlli per l'uso di campi statici che sono irrilevanti in Scala.

Findbugs e altri strumenti che sono bytecode base funziona, nel senso che essi trovare difetti nel codice. Purtroppo, gli approcci basati bytecode sono state sintonizzati contro l'uscita dei compilatori javac, nel senso che sono in grado di produrre molto alti tassi di falsi positivi, e perdere le questioni di base, perché Scala sarà la produzione di idiomi diversi rispetto al compilatore javac.

Sto avendo un sacco di divertimento con Codacy (ad esempio https: // www. codacy.com/app/hejfelix/Frase/dashboard ) per progetti Open source

C'è un plugin per SBT PMD copia incolla rilevatore CPD.

https://github.com/sbt/cpd4sbt

Scala rilevatore di copia incolla, sulla base di AST. Cerco di copia-incollato sottostrutture / AST, e informare su di esso.

E 'plug-in per SBT.

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

Non so molto di Scala, ma se è prodotto solo Java compatibile del Klocwork potrebbe funzionare. Potete trovare qui Klocwork Solo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top