ブール変数のプレフィックスとして常に「is」を使用する必要がありますか?[閉まっている]


50

isブール変数のプレフィックスとして常に使用する必要がありますか?過去の何かを示すブール値はどうですか?私が書く必要がありますisInitializedwasInitialized?私は性質のために書くべきですIsManyMembersHasManyMembers

ベストプラクティスはありますか?または、私はただ英語の規則に従って書くべきですか?



回答:


54

ブール値は、オブジェクトが何かであることを示すために常に使用されるわけではないためです。

「has」は同様に有効な接頭辞「was」であり、「can」も特定の状況で有効です。また、接尾辞「Able」が使用されているのを見ました。

So Object herring:-
 isFish = true
 isCat = false
 hasScales = true
 hasFur = false
 canSwim = true
 wasEgg = true
 eatAble = true

Object moggy:-
 isFish = false
 isCat = true
 hasScales = false
 hasFur = true
 canSwim = false
 wasEgg = false
 eatAble = false

それはすべてプログラムを読みやすくするものに依存します。


37
eatAbleよりもcanBeEatenまたはisEdibleを選択すると思います。
kzh

3
@kzh-isEdibleは良い!canBeEatenは、オブジェクトが実行できることではなく、オブジェクトに発生するものであるため、あまり確信が持てません。うるさいうるさい:-)。
ジェームズアンダーソン

1
何かが許可されているかどうかを示すフラグはどうですか?「AllowsExtensions」は明確ですか?または、「DoesAllowExtensions」はより長くてもより明確になりますか?
リバースエンジニア

1
接尾辞として-ableを使用する場合、単語ではないので大文字にしません。たとえば、wearAbleではなくウェアラブル
jk。

2
@kzh:最初はeatAble「食べることができる」ではなく「食べることができる」と読みました。全体として、それはあいまいであり、実際に避ける方がよいでしょう。
フラット

8

私は英語のルールで行きます。コードを理解するのが難しい場合、私を追いかけるgoingのマニアであるあなたの作品を見る次のコーダーについて考える傾向があります。これを念頭に置いておくと、私の健康にとって最良の選択肢は、コードをきれいで読みやすくすることです。つまり、可能な限り最高の英語とドメイン言語を意味します。


3
タラが理解しにくい場合」私が見る他の答えの魚/猫のテーマにこだわる
スコッティセウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.