- - PR -
VBでcontinueの代わりって…
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-24 14:06
これは、人それぞれってのがありますよね... 統一していれば見やすいけども... 逆で、ブロックしちゃうのを見難いという人もいますよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-01-24 14:34
あなたの言うとおりの意図です。 そのくらいの大きさのサブルーチンであれば実際には問題になりませんが。 長いサブルーチンを短くする方が先か、出入り口を一つにするのが先かは場合によりけり? | ||||||||
|
投稿日時: 2005-01-24 15:38
あくまで私見ですが、ポイントは出口というより、出口直前の処理にあると思います。C言語のような、Try…Catch…Finallyの機構が無い言語でreturnいっぱいの関数を作ると、開いたファイルを閉じてない、ヒープに確保したメモリを解放してないといった、重度の高い不良の温床になりやすい。だから、出口を一つにすることの意図は、出口直前の処理を一箇所に固めることにあるのではないかと。 一方、VB.NETのような、Try…Catch…Finallyの機構が使える言語では、Finallyブロックを使うことで、returnいっぱい使っても出口直前の処理を一箇所に固めることができます。こうなると、上記の問題が解消されて、
これがものすご〜く効いてくる。なので、VB.NETのようなTry…Catch…Finallyの機構が使える言語では、私はやっぱりガード句推進派です。 #余談ですが、以前Cでファイル処理のプログラム作ってた時、 #returnを検索してfclose(fp);って書き足してたのを思い出しました(^^; #javaや.NETからプログラミング始めた人の中には、 #「ヒープ」という単語自体知らない人もいるのでしょうね… | ||||||||
|
投稿日時: 2005-01-24 18:56
unibon です。こんにちわ。
「ガード句」という言葉は知らなかったのですが、Google で検索してもあまりヒットしません(4件だった)。どういうのを指すのかがあまりピンと来ないです。また、英語だとなんと言うのでしょう("Guard Clause" ?)。 あと、こういう話題で思うのは、「昔聞いたことがある」、「以前読んだ本に書いてあった」というなんとも都市伝説みたいになりがちかなと思います。出典があいまいなのがいけない、ということは毛頭言うつもりはないです。出典が分からないというのも、それは情報だと思います。私も、こういうのは経験で覚えているだけで、なぜそうなのかはあまりはっきりと覚えていないです。 しかし、もし出典が分かるかたは書いていただけると、それは貴重な情報としてありがたいと思います。 | ||||||||
|
投稿日時: 2005-01-24 19:19
リファクタリング:プログラミングの体質改善テクニック(P250) 「ガード節による入れ子条件記述の置き換え」 | ||||||||
|
投稿日時: 2005-01-25 11:24
ども、ぼのぼのです。
すみません、実は私も「ガード句」という単語はこのスレで初めて知りました(^^; ただ、菊池さんの説明で、自分の中であまりにもすんなり受け入れられてしまったので、けっこう一般的な単語なのかな、と思い、そのまま使ってしまいました。
この書籍、読んだことはないのですが、ループ内のcontinueも一種のガード句(節?)なのかなと勝手に解釈してしまいました。ループ内の処理って、一回しか使わない&&あまり長大でない場合はサブルーチン化しないですけど、そういう時continueは同じ役割を果たしてくれますよね。 #今のところVS2005の購入予定なし… #当分Continueは使えなさそうです(;_; | ||||||||
|
投稿日時: 2005-01-31 22:03
unibon です。こんにちわ。
[quote] ぽんさんの書き込み (2005-01-24 19:19) より:
ありがとうございます。遅れ馳せながら、読みました(以前も読んだのですが、記憶に残っていませんでした)。 そこには、「ガード節[Beck]」とありましたので、"Kent Beck" で探すといろいろヒットしますね。 なお、当該ページの前後には、出口が複数あることについて肯定的な記述もありました。もっとも、この書籍(「リファクタリング」)は、「せいてはことを仕損ずる」と「時は金なり」の両方を併記しているので、だからどう、ということではありませんが。 | ||||||||
|
投稿日時: 2005-02-01 10:07
単語の ガード節なら、
GHC プログラム の2語の検索で多数出ます。古語ですね |
«前のページへ
1|2|3