冗長なif文が作られる理由諸説

booleanを返すケースで冗長なif文が作られるのは何故かというのをツイートしてみたら、多くの反響があったのでまとめてみました。
43
前へ 1 ・・ 5 6
とりさん @TypedTypelessTy

@kmizu isPossiblle()の説明として,isEnableがtrue/falseのときはtrue/falseと記述したいか,isEnableと等価と記述したいかという違いな気がします.

2021-06-17 09:35:27
kmizu @kmizu

@TypedTypelessTy そこがわからないんです。どっちで書こうがプログラムとしては、「常に」等価になるはずで、後は可読性の問題に落ちると思いますが、変数名で既に意図が説明してある以上、if(...) ... else ... にしても、可読性が上がるという感覚がわからないといいますか。

2021-06-17 09:39:10
kmizu @kmizu

意味が違うって意見もわからなくて、「プログラムの意味上は」同じ、にしかならないはず。「意図」の話だろうか?

2021-06-17 09:42:56
いしころ @wipianoooo

return isEnabled; 一択だなあ、無駄に長くしても良いことが思いつかない

2021-06-17 09:43:13
とりさん @TypedTypelessTy

@kmizu はい.可読性の問題だと思います. PossiblleとEnableは意図が微妙に違うはずで,だからisPossibleと関数にしているのではないでしょうか. とすれば,isEnableのとりうるすべての状態に対してisPossibleを列挙するという書き方も理解できなくはありません.

2021-06-17 09:46:12
あく @aqlwah

isPossibleの戻り値とisEnabledが文脈的に別の値であることをコード上で表現したいんだとしても、結局関数化しちゃうなら呼び出し側からは関係ないよなあ 「将来的にisPossibleの条件にisEnabled以外の条件が追加されたときの修正範囲をif条件の中に限定する」以上の価値はない気がする twitter.com/kmizu/status/1…

2021-06-17 09:48:07
kmizu @kmizu

これと同型の意見を複数拝見したので、素朴な疑問なのですが、結局、どっちで書こうが「内部実装の問題に過ぎない」ので、別の書き方をする意味がわかってないです。boolean get*isPossiblle()だとしても、私ならreturn isEnabled; をそのまま返します。 自然言語に一対一対応させると妙に見える❓ twitter.com/kurema_makoto/…

2021-06-17 09:24:28
あーきぃ(一部からのDMCA虚偽通報対策中) @bux5rgls

PHPの場合、isEnabledは「なにかしらの文字列、0以外の数値」等々の値が入っており、内容にかかわらず中にtrueと判定できるデータがセットされているかを見る場合に使います。 フォームの必須チェックなどでよく見かけます。 自分はこの辺を見ながら精度を調整しますね。 php.net/manual/ja/type… twitter.com/kmizu/status/1…

2021-06-17 09:51:12
kmizu @kmizu

関係ない話題。初学者のみならず、仕事でコード書いてる人でも、 if(isEnabled) { return true; } else { return else; } と書いちゃう人と時々遭遇するのだけど、これはなんでなんだろう。 ↓

2021-06-17 00:13:47
とりさん @TypedTypelessTy

@kmizu ただ,ぼくもreturn isEnableで「isPossibleはisEnableと同じだよ」ぐらいの抽象度の方が読みやすいと判断します.

2021-06-17 09:53:29
あおい @aoi0308

isEnabledの名前に引っ張られてる気がするけど、言いたいことは↓こういう書き方はセンスないよっていうだけですよね。 if (x == 1) { return true; } else { return false; }

2021-06-17 10:02:02
omanuke @omanuke

もしやるとしたら本来ならisEnabledでなにかやる処理があるけど諸事情で今はない、ここではないんだけど他のコードの箇所とスタイルを合わせるために同じように書いてる、とかかなぁ・・・ twitter.com/kmizu/status/1…

2021-06-17 10:06:40
ふじよし @Fuji_Yos

@kmizu 言語によるけど、非ゼロ判定を明示的にBooleanにしたい、みたいなのの手癖とか?

2021-06-17 10:09:47
前へ 1 ・・ 5 6