設計について(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