できるだけコードに仕様を埋め込む努力をしよう

例えばこんな仕様がありました。

鼻毛を処理する道具があれば鼻毛処理ができる。
道具には、鼻毛抜き、鼻毛カッターがある。

これに対してこんなコードがありました。

001 If 鼻毛抜きの在庫 > 0 OrElse _
002    鼻毛カッターの在庫 > 0 Then
003    鼻毛処理()
004 End If

これでも、確かに仕様を実現していますが、より仕様を埋め込んだ方が後から読んだ時に分かりやすいので

001 If 鼻毛処理の道具がある() Then
002    鼻毛処理()
003 End If
004 
005 
006 Private Function 鼻毛処理の道具がある() As Boolean
007     If 鼻毛抜きの在庫 > 0 Then
008               Return True
009     End If
010 
011     If 鼻毛カッターの在庫 > 0 Then
012               Return True
013     End If
014 
015     Return False
016 End Function

こんなコードにします。

仕様がよりコードに埋め込まれ、

また

鼻毛処理の道具がある から 鼻毛処理 ができる。

と、より自然に読むことができるようになりました。

どうでもいいですが、後から、道具の種類に電動鼻毛カッターが増えても安心です。

Share