松尾です。

From: "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp>

> 実際のところは
> 
>   プログラマは知っている.
>   でもユーザは知らない.
>   クラッカは知らないふりをする.
> 
> ですよね.なひは,
> それならプログラマも知らないふりをしといたほうがいいと思う.
> 何が入ってくるかわからないので,いちいちチェックしないといけない.
> だったら一様にArrayでいい(注意: 論理の飛躍があり□ ^^;).

結論は一緒なのですが、論理の飛躍に付いていけてない^^自分を発見してしま
いました。僕の考えでは、「いちいちチェックしないといけない」ではなく、
「全然チェックしなくて済む」になると思います。

# もちろんビジネスロジックの定義域に関わるチェックはビジネスロジックメ
# ソッドの責任で行います。ここではそれ以外のチェック(データがあるとか
# ないとか、引数の数が正しいかとか)が必要ないということ。


cgi['name']は一様にArray(データがないときは[])

とした場合についてです。

クラッカがデータを操作して、或いは途中で変なことが起こって、データがプ
ログラマの想定に反して0個、1個、或いは2個以上入ってしまったとしても。

一つのデータを引数に取るビジネスロジックメソッドにはcgi['name'][0]を、
0個以上のデータを引数に取るメソッドにはcgi['name']を、それぞれチェック
抜きで渡せばよいわけです。

後はビジネスロジック側でnilを意識するだけ。

# 青山さんの[ruby-list:16423]を参照。