最近、コードスキャン関連のツールを使用して、開発されたコードの品質を評価し、多くの問題をスキャンし始めました。私の能力を向上させるには、これらのルールの詳細を検討する必要があります。この列は特別に開いています。1つは調査の概要、もう1つは記録です。成長プロセスは膨大な数のブロガーに力を与えます、私は誰もがそれを好きであることを望みます
文字列リテラルは重複してはいけません
文字列リテラルが重複すると、すべての出現箇所を更新する必要があるため、エラーが発生しやすいリファクタリングプロセスが発生します。
一方、定数は多くの場所から参照できますが、更新が必要なのは1つの場所だけです。
違反コード
デフォルトのしきい値は3です。
public void run() {
prepare("action1"); // Noncompliant - "action1" is duplicated 3 times
execute("action1");
release("action1");
}
@SuppressWarning("all") // Compliant - annotations are excluded
private void method1() { /* ... */ }
@SuppressWarning("all")
private void method2() { /* ... */ }
public String method3(String a) {
System.out.println("'" + a + "'"); // Compliant - literal "'" has less than 5 characters and is excluded
return ""; // Compliant - literal "" has less than 5 characters and is excluded
}
準拠ソリューション
private static final String ACTION_1 = "action1"; // Compliant
public void run() {
prepare(ACTION_1); // Compliant
execute(ACTION_1);
release(ACTION_1);
}
例外
誤検知の発生を防ぐため、5文字未満のリテラルは除外されます。