From: Ryunosuke Ohshima Date: 2000-06-20T23:22:44+09:00 Subject: [ruby-list:23391] Re: http.rb will change 大島です。 From: TAKAHASHI Masayoshi Subject: [ruby-list:23247] Re: http.rb will change Date: Wed, 14 Jun 2000 22:22:41 +0900 > Ryunosuke Ohshima さん: > > 実は僕もこういう多重代入をするコードを書いてしまっています。僕自身、 > > 多少まずい気がしているのですが、やはり1つのオブジェクトなりにまとめ > > た方が分かりやすいでしょうか? > > これは場合によりますよね。 > 明らかに何と何を返すのかが分かるんならいいんですけど。 なるほど。返すデータの種類が2,3種類ぐらいだと配列の便利さか、オブジェ クトのわかりやすさかと悩ましいです。 > Net::HTTP::get の場合ですと、code、message、version、header、 > bodyなどなど、たくさん返り値になりそう(実際になる)なものがあり > ます。 > これらがどういう粒度、どういう順序で返されるのかを考えるよりは、 > まとめてobjectにして返してもらい、必要に応じてアクセスメソッドで > 取り出す、というのが分かりやすいんじゃないかと思うのです。 言われてみると確かに、bodyだけ特別扱いする必要はない気もします。 > うーん、要するにget2だけあればgetはなくても構わない、ということ > でしょうか? getはこうあった方がいい、ということではなくて。 > まあget2だけでしのげないことはないです。自力で例外を上げれば > いいんですから。 net/http.rbで問題になっている例外は、サーバとのhttp上でのやり取り自 身には成功しているので、むしろ例外があがる方に僕は違和感があります。 僕は例外をあげるプログラムをほとんど書いたことがないので、例外をあげ るべき状況を適切に理解できているか怪しいですが。 > > get2って名前自体が問題だとは思いますが、 > > getに置き換えるわけにもいかないのなら、新たに名前をつけるというのは > > どうでしょうか?たとえばreadですとか。(これはこれで問題がありそうで > > すが。) > > # readはさすがに……。 ええ、readはやはりまずいと思います。 > get_noexception は長すぎるので、get_silentとか? get_noerror は > 何か違うものを想像しそう。 名前は難しいですね。get_responseやget_mustが浮かびましたが、getとの 違いが明確という点では長くてもget_noexceptionぐらいの方が良いと思い ます。 大島 龍之介 ryu@jaist.ac.jp