Hatena::ブログ(Diary)

NAL-6295の舌先三寸 このページをアンテナに追加 RSSフィード

2006年10月06日(金) 切なさを乗り越えて繋いだ手離すとき 若さの意味が初めて分かった

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

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

鼻毛を処理する道具があれば鼻毛処理ができる。

道具には、鼻毛抜き、鼻毛カッターがある。

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

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

こんなコードにします。

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

また

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


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

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

R・田中一郎R・田中一郎 2006/10/09 11:07 題材が、鼻毛という、恐らく最も身近にあるものを使っているところ分かりやすいと思いました。

NAL-6295NAL-6295 2006/10/09 17:03 そう言っていただけるとありがたいです。

tatsugorotatsugoro 2006/10/10 14:20 鼻毛ハサミと、鼻毛カッターのどっちも使っている私が現れても、仕様変更が楽でいいですね。

JittaJitta 2006/10/10 21:51 う〜ん。。。。。。。。。

はさみでやっている私は、False ですか?

NAL-6295NAL-6295 2006/10/11 09:38 私も実は、はさみを使っています。

naoki0311naoki0311 2006/10/13 09:02 どちらかというとカッター派です(笑)
分かりやすい書き方ですねぇ。

ひろえむひろえむ 2006/10/13 12:49 実は私、ラジオペンチでフンガーと抜くのが好きです(^^; 抜けた鼻毛を見てしばしの優越感に浸れます。 よいこはまねをしないで下さい。

NAL-6295NAL-6295 2006/10/13 22:05 ラジオペンチでって豪快ですね。
凄くたくさん抜けそうだ・・・。

じゃんぬねっとじゃんぬねっと 2007/01/26 15:06 ちょww 真面目な内容だっただけに鼻毛なのがワロスwww

でもこちらは、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36336&forum=7&start=8

aaa 以外の評価対象はないので Select Case で良いと思います。

NAL-6295NAL-6295 2007/01/26 19:33 鼻毛だったらインパクトがあるかなと 笑
aaa以外の評価対象がないので、確かにSelect Caseでも良いのですが、
・なぜその分岐があるのか。
・そのケースとは、仕様上、どんな状態なのか。
をコードに残しておきたいと思うことが多く、
そういうときは、メソッドにする事が多いです。
今回は、例として出ているコードの内容に意味を持たせていなかったため、質問者が困っている局面がわからなかったので、一番安全だけど、冗長な方法を案のひとつとして出してみました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/NAL-6295/20061006/p4