web-dev-qa-db-ja.com

変数の名前はIDまたはIDにする必要がありますか?

これは少し面倒ですが、一部の人々がIdを次のように使用するのを見てきました。

private int userId;
public int getUserId();

と他の人が使う:

private int userID;
public int getUserID();

これらの1つは他よりも良い名前ですか?どうして?大規模なプロジェクトでは、これが非常に一貫性のない方法で行われるのを見てきました。私がほとんどの人が精通している標準を設定するとしたら?従来の規格はどれですか?

134
Adam

これらのケースで従うべき最も重要なルールは一貫性です。他の人と同じようにしてください。

たとえば、言語のXML APIを調べて、その方法を確認します。

Javaは SAXParser および DOMException のようなクラスに名前を付けます。NETは XmlDocument のようなクラスに名前を付けます。

これに基づいて、Javaでは「ID」、C#では「Id」と言います。

ただし、Java= EE 6には@Idドキュメント を参照)、Javaは "Id"を通常の単語と見なすようです。

58
luiscubal

一貫性は王様です。どちらか一方を選びますが、どこでも一貫して行います。

とは言っても、キャメルケースに違反しないため、最初のバリエーションを優先します(つまり、1つだけではなく、2つのスタイルルールを覚えておく必要があります)。

this のために2つの大文字が使用されることもありますが、IDは実際には単なるIDの形式です。

110
Robert Harvey

TL; DR: .NETクラスライブラリのコンテキストでは、IDを使用することをお勧めします。これは、許可/推奨される略語のまれな例であるため、少し直観に反しています(略語は一般的に不快です)。

C#または.NETクラスライブラリの規則について話している場合、Microsoftはかなり明確に定義された 命名ガイドライン を利用できます。それらはよく考えられており、さまざまな問題に関する多くの説明があります。実際、すべての開発者は 設計ガイドライン セクション全体を読むのに少し時間がかかるはずです。

頭字語に関しては、経験則は次のとおりです。2文字の頭字語の場合、大文字(Pascalの大文字と小文字が適用される場合)を維持する傾向があります。 IOStreamはクラスの名前かもしれません。頭字語が長い場合は、残りの頭字語を小文字にします。 XmlDocumentまたはHtmlParser。これは実際にはほとんど明白な規則であり(2文字の頭字語をつなげない限り、1つの単語の終わりと次の単語の始まりについて混乱はありません)、すぐに慣れます。

それで、それはIDですか、それともIdですか?まあ、マイクロソフトによれば、それはあなたが考えるものではないかもしれません:

略語は、省略形が単一の単語を短縮するという点で略語とは異なります。たとえば、[〜#〜] id [〜#〜]識別子の省略形です。一般に、ライブラリー名には省略形を使用しないでください。

識別子で使用できる2つの略語は、IDとOKです。 Pascalで大文字と小文字が区別された識別子では、IdおよびOkとして表示されます。キャメルケースの識別子の最初の単語として使用する場合、それぞれidおよびokとして表示されます。

事例として、この区別がいつガイドラインに現れ始めたのか実際にはわかりませんが、数年前(約3.0/3.5)に、クラスライブラリの一般的な命名傾向はIDからIdになりました。

76
Daniel B

私はいくつかのコーディング規約のドキュメントで非常に良い説明を読みました。 CamelCaseは常に頭字語と略語に使用する必要があります。単語の境界を区別するのが簡単だからです(XmlIdWriterXMLIDWriterを比較してください)。

15
gilden

JavaScriptのデフォルト関数getElementById();でわかるように、 Idはキャメルケースで書かれています...

アンダースコアと一緒に使用する場合は「id」を使用します。 例:user_id

アンダースコアなしで変数に名前を付ける場合は、「Id」を使用して、異なる単語を区別します。例:serId

その単一のWord変数の場合は、完全な小文字にする必要があります。複数のWord変数の場合は、キャメル小文字を使用します。例:thisIsExample

ただし、定数の定義には通常すべて大文字を使用するため、CAPSで「ID」をすべて使用することはお勧めしません。

2
Sukrit Gupta

まず、略語を避けます。

第二に、略称が非常によく知られている場合は、キャメルケースを使用することをお勧めします。

それはあなたがその意味を考慮する必要がないからです。通常の単語として扱う

1
Sungguk Lim