[Java]Java Refactoring-magic number


数値
魔法番号とは、何なのか分からないが、特定の機能を発揮できる魔法の数字のこと.
例えば、文字列の長さが100の場合、100という数字をmagicnumberと呼ぶ.
以上の説明を加えると、for文にi < 100と書くと、100がmagic numberとなります.
なぜmagic numberを避けるのですか?
  • あいまいな意味
  • 単純に100という数字があるのがどういう意味かはまだ分からない.
  • は、他の開発者に完全なコンテキストとコードを読むように要求します.
  • 상수 혹은 변수명으로 의도를 명확히 하는 것이 좋다
  • 変更範囲の確認が困難
    もう一つの方法を考えてみましょう.
  • も100を使用しています.
  • 文字列の長さが100->200に増加した場合、Aメソッドの100度200に変更しますか?本当に変更しますか?
  • 特に0、1、10など頻繁に使われる数字を全てmagic numberで処理すると、履歴が分からないと変更時に致命的なエラーが発生する可能性があります.
  • public class Main {
          private static final int STRING_LEN = 100;
          public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String str = sc.next();
            
                if (str.length() < STRING_LEN) System.out.println("문자열 길이 100 미만");
          }
    }