パンくず
リファクタリング-プログラマーの体質改善テクニック
データの再編成
シンボリック定数によるマジックナンバーの置き換え
内容
適用ケース要約
意味のある数値が使用されている
適用内容要約
定数で数値を置き換える
適用詳細
意味のある数値がそのまま使用されている=マジックナンバー。
マジックナンバーが存在する場合、実装者にしか分からないコードになりがちです。
数値自体の意味を判断出来るように、定数を作成して該当の数値を置き換えます。
サンプル
黄金比を算出する機能を実装します。
サンプルコード
def calculate_golden_ratio(short) return short*1.618 end base = 5 puts "黄金比 #{base}:#{calculate_golden_ratio base}" base = 27 puts "黄金比 #{base}:#{calculate_golden_ratio base}"
# encoding: Shift_JIS GOLDEN_RATIO = 1.618 def calculate_golden_ratio(short) return short*GOLDEN_RATIO end base = 5 puts "黄金比 #{base}:#{calculate_golden_ratio base}" base = 27 puts "黄金比 #{base}:#{calculate_golden_ratio base}"
出力(共通)
黄金比 5:8.09 黄金比 27:43.686