設計について(2)「マジックナンバー」

今日は、マジックナンバーについて書いてみたいと思います。


これは、ソースコード上で判定文などに
謎の数字が、突然出てくる事を言います。
例えば、「a > 5」など
この5って何の5?
何の基準?
何を判定してるの?
と言うことになります。

この場合、MAXとかMINなど
意味の分かる名前の変数に置き換えます。

local LIST_MAX = 5

if a > LIST_MAX then
    Print( "限界を超えました" )
else
    Print( "まだ超えてません" )
end

こんな感じです。
マジックナンバーを無くすことによって、
ロジックの意味も読み取り易くなります。


さらに、お得なことに
こうすることによって、ロジックが汎用的になります。
ロジック部分を変えなくても、LIST_MAXの値だけ変えればいいからです。


もし「a > 5」のままであれば、
「5」を他の数字に変えて、その周辺で関連する部分はないか?
というのを毎回、悩まなければいけません。
すぐ近くに、「b > 3」というのがあれば
この「3」と「5」の関係は???
と、一生悩み続けなければいけません。


はい、という訳で
マジックナンバーは、定数化して
ロジックと、パラメータは分離させましょう。


それでは、Quit