16/01/27 01:41:22.45 00eXLu2i.net
>>663
まあそのルールは俺は逆にただの足かせだとは思うが。
> そう、こういうのはだいたい昔の親切でない言語や開発環境を想定した規約なんだよね。
> 実際10年ぐらい前には、巨大メソッドの途中にreturn文があって以降が実は使われないゴミ、
> とかいう酷いプログラムを見かけたこともある。
> なので、そういう時代は出口を一か所にしなさいという主張にも、
> その結果として巨大なif文やらが作られてしまうことが多々あるものの、それでも一定の価値があった。
> でも今はJavaなんかだとそもそもそういうのは言語自体でエラーとして検知してくれるし、
> 何より一つ一つのメソッドを小さく作るべき、って思想も浸透してきてる(と思う)ので、
> この規約は可読性を下げるだけの厄介者でしかない。(#2295561)
> URLリンク(askslashdot.srad.jp)
> ただ、このスタイルはいい線いっているけど銀の弾丸ではない訳で、
> 厳格に適用してみるとフラグが必要になってゴチャゴチャする等の問題が発生したりする。
> これを避けようとすると、特定の場面においてbreakやcontinueや途中returnを使わざるをえなくなる。
> C言語では特定の場面でgotoも使うことにもなる。
> 現在のC言語系のプログラミング言語にbreakやcontinueや関数内限定のgotoが残っていたり、
> 途中でreturn可能な言語仕様だったりする理由は、
> 「乱用したらNGだけど、でも代替のよい案がない」からだ。つまり微妙に必要悪的なポジションの機能なのだ。
> URLリンク(d.hatena.ne.jp)
ここら辺が割と妥当な意見ではないかな。
ただ再帰も満足に書けない奴がgoto使うのは無しだよ。
基本的には「もっとも分かりやすい記述」にしろということであって、
つまり、自分がやりたい処理を何通りにでも書ける奴が
自分や自分以外の一般プログラマにとって一番簡単な記述を選ぶときのガイドラインであって、
一通りすらも満足に書けない奴がgotoとかやったらおそらく満場一致で死ねということになる。