設計について(3)「定数化」

今日は、前回の話にちょっと追加したいことがあります。


最後の方で、「a > 5」の近くに
「b > 3」があったらという話をしましたが
これをどのように定数化したらいいでしょうか?


「5」と「3」が全く関連しないものであれば
それぞれ定数化すればいいんですが、
その差に意味がある時は、こんな感じでしょうか?

local LIST_MAX = 5
local MAX_OFFSET = 2

if a > LIST_MAX then
    -- aが限界を超えている

    if b > LIST_MAX - MAX_OFFSET then
        -- bもbの限界を超えている
        -- bの限界は、aの限界よりMAX_OFFSETの分少ない

この例では、「3」を定数化せずに
差分の「2」を定数化しました。


定数化は、仕様がそのまま読み取れるようにしましょう。


変に気を利かせて、計算した結果を定数で定義したり
今は、絶対起こり得ないからと条件分岐を省略したり
しないようにしましょう。


仕様そのままに
仕様が分かるように
定数化して下さい。


はい、これは定数だけではなく
ロジックもですね。


それでは、Quit