石橋秀仁です。なひさん、コメントありがとうございます。


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

> なひです。
> 
> > Rubyのmethod chainは「左から右に連鎖」します。
> > 「左から右にコードをタイプ」するのと一致しています。
> > 考えながら書ける。それが「自然なコーディング」や
> > 「楽しさ/嬉しさ」という感覚につながっている気がします。
> > # Perlで同じことを書くと「右から左に連鎖」するからヤです。
> > # 例えば gets.chop.split("\t").each{|e| foo(e)} のような処理。
> > 
> > 
> > Rubyのmethod chainは、考える順に書くことができて、すごく自然です。
> > 考えながら書く=考える道具として優秀だと思います。メソッドの動作を
> > 確認するために、コマンドラインで一行野郎(one-liner)を書くときとか。
> 
> 軽く内省してみるに、なひは↑のような考え方、
> またコーディングの進め方をしていないようです。
> わらわら一気に複数思い浮かぶので、それらを書き留めます。
> どうせ後に再構成は必須なので、メモでよろしい。
> 頭からなくならないうちに文字にシリアライズする。
> 落ち着いたら、好きなだけ入れ替えたり削ったり加えたりします。

あ、ぼくが書いたのはone-liner限定の話です。
ファイルに書く場合は、ぼくも同じような感じでやっています。


> これとは違う理由で、なひはメソッドチェインがあまり好きではありません。
> 理由はこちら。ものすごく具体的で、「デバッグと相性が悪い」こと。
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/~poffice/mail/ruby-dev/9141
> 
> で、最近もう一つ思いついたのが、「リファクタリングとも相性が悪い」こと。
> http://www.pragmaticprogrammer.com/ruby/articles/pink/index.html
> 
> いわゆる「リファクタリング」の是非、効果の議論はおいといて、
> チェインが多いと↑こんなにリズムよくできないと思います。
> 
> 結局「あとからいじりにくい」という点で、デバッグとの相性と同じことかも。

賛成です。同感です。RubyUnitを使ったTFPをやっているので、
method chainはあまり使いません。なひさんの述べられているのと、
同じ理由です。使うのは、StringとArrayとHashとかです。
いわゆる、ほかの言語で言うところの言語組み込みprimitive object
の場合のみです。

で、エラー処理がchainの途中にひつような場合は、
chain全体をbegin...rescue...endで囲む「のではなくて」、
一行ごとに分離しています。


--
石橋秀仁 hideto-i / rr.iij4u.or.jp
i-mode:  i.sys / docomo.ne.jp
Odigo: 1489394  ICQ: 83329246
Do you like jazz? jazzbar / freeml.com