私たちはコード品質管理のためにソナーを使用しています。JPAアノテーションの魔法番号ソナー違反
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")
これは注釈のための真の違反です:私はそのようなJPAアノテーションのための「マジックナンバー」違反に問題がありますか?
もしそうでなければ、このようなソナー違反をどのように処理できますか?
私たちはコード品質管理のためにソナーを使用しています。JPAアノテーションの魔法番号ソナー違反
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")
これは注釈のための真の違反です:私はそのようなJPAアノテーションのための「マジックナンバー」違反に問題がありますか?
もしそうでなければ、このようなソナー違反をどのように処理できますか?
この番号が注釈に表示されるかどうかは、魔法番号違反ではわかりません。 IMHOこれは偽陽性で、2つの方法で対処できます。 品質プロファイルでこのルールを無効にするか、MAGICNUMBERクラスを作成し、静的プロパティとして使用しているすべての数値をリストします。たとえば、以下のクラスを見て
public final class MAGICNUMBER {
public static final int L8000 = 8000;
public static final int L300 = 300;
}
次にあなたがこの
@NotNull
@Size(min = 1, max = MAGICNUMBER.L300)
@Column(name = "NAME")
私はそれが2012年にあったかわからないんだけど、今これを見つけるように、あなたのクラスでそれを使用することができますv 3.3.2の注釈だけを無効にする方法があるようですが、確かにそれ以上です。
checkstyleファイルのルールを編集して、注釈、ハッシュコードの方法、または特定の番号を考慮しないようにすることができます。
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/>
<property name="ignoreHashCodeMethod" value="true" />
<property name="ignoreAnnotation" value="true" />
</module>
私はこれらの2つの方法が嫌いです。私はソナーがコードを変更することなくそれを処理したい。 –
次に、Sonarプロファイルで関連するルールを無効にします – ppapapetrou