web-dev-qa-db-ja.com

boolメソッドの命名:Is vs. Can vs.?

ブール値を返すメソッドに適した名前はどれですか?

IsSupportContentType

または

CanSupportContentType
56
Mediator

Is vs. Can

Microsoftの命名規則の推奨事項 によると、ブール値の接頭辞として「Is」と「Can」の両方が(そして「Has」も)OKです。

平易な英語では、「Is」はタイプ自体ができることではなく、タイプ自体について何かを識別するために使用されます。たとえば、IsFixedIsDerivedFromIsNullableはすべてCLRの型とメソッドにあります。これらすべての場合において、「Is」の後には形容詞が続きます。

一方、「できる」は、機能をより明確に示します。 CanEditCanReadCanSeek。これらの各ケースでは、canの後にverbが続きます。

「サポート」は動詞なので、あなたの場合はCanSupportContentTypeのほうがいいと思います。

短い代替案

一方、規則では、プレフィックスはオプションであるとしています。さらに、開発者はインテリセンスで引数の型を確認できるため、メソッド名に引数の型を含めるのはちょっとおかしいです。したがって、couldメソッドにSupportsという名前を付けて、次のように定義します。

public bool Supports(System.Net.Mime.ContentType contentType)

...これは短くても目的を明確に伝えます。次のように呼び出します。

ContentType contentType = new ContentType("text/plain");
var someClass = new MediatorsClass();
bool ok = someClass.Supports(contentType);

または妥協として、これがおそらく最善です:

public bool CanSupport(System.Net.Mime.ContentType contentType)
108
John Wu

"should"接頭辞も使用できることは言及する価値があります。 Appleのガイドライン によると、「can」と「should "、一般にモーダル動詞を使用して、ブール値を返す関数に名前を付けることができます。 「will」の多くの使用法を見ることができませんが、「should "は、reactjsに見られるように、アドバイスを問い合わせるフックに最適です。

shouldComponentUpdate: (newProps: any) => boolean
9
Harry