「~が存在しない」のメソッドは、!Is~ or IsNot~ どっち?
といった投げかけから始まる徒然。
足りなければご自由に編集してくだされ。
-
masaru_b_cl
- 15553
- 2
- 0
- 0

そのまま書こうと思ったら、IsNonExistentHogeHogeになってしまって、う~ん・・・ QT @masaru_b_cl: ゆる募:「~が存在しない」でtrueを返すようなメソッド名
2011-07-13 11:39:49
@masaru_b_cl 質問に沿った答えではないかもしれませんが、「『存在する』でtrueを返す」メソッドに対し、否定演算子を使うことで「『存在しない』でtrueを返す」を実現するのはダメでしょうか?「~しない時にtrue」という命名は得てして混乱のもとになることが多いので
2011-07-13 11:44:07
@masaru_b_cl 反対の反対の反対のそのまた反対、みたいな思考でミス誘発しそうですしw 今後外の用途で使われる可能性もあるし、それで返すbool値を反対にしたら呼び出し側の修正漏れとか起こるし…w
2011-07-13 11:44:49
否定を肯定と同程度によく使う場合はどうすべきか迷う。例えば、文字列が空じゃない、というのを表すのに!IsEmptyとすべきか、IsNotEmptyとすべきか、HasTextとかHasLengthとすべきか。個人的にはIsNotEmptyの方がわかりやすいと思うんです。
2011-07-13 11:49:20
. @masaru_b_cl @bleis 視認性の問題は確かに…しかし経験上、視認性よりもコードを読んで、「最終的な意味」が想定しやすいコーディングであるほうが良いと考えています。その上で、否定を盛り込んだ命名でも混乱が起こりにくい状況であれば、それはそれでいいんですかね。
2011-07-13 11:58:23
~する、~しない、が同程度に使われる可能性があるのなら、Is~、IsNot~の両方を用意した方がいいんじゃないかと思うです。
2011-07-13 12:00:42
@masaru_b_cl 同条件で同程度であれば、間違いなく私はIs派です。理由は一貫して混乱しないために!自分がじゃなくて他の人が読んだ時も想定して。
2011-07-13 12:04:03