319

キャメルケースについて疑問があります。次の頭字語があるとします。Unesco = United Nations Educational, Scientific and Cultural Organization.

あなたは書くべきです:unitedNationsEducationalScientificAndCulturalOrganization

しかし、頭字語を書く必要がある場合はどうしますか? 何かのようなもの:

getUnescoProperties();

このように書くのは正しいですか?getUnescoProperties()またgetUNESCOProperties();

4

11 に答える 11

388

受け入れられた回答からのマイクロソフトのアドバイスに対する正当な批判があります。

  • 文字数に応じた頭字語/頭字語の一貫性のない処理:
    • playerIDplayerIdplayerIdentifier
  • 2 文字の頭字語が識別子の先頭にある場合、大文字にする必要があるかどうかという問題:
    • USTaxesusTaxes
  • 複数の頭字語を区別することの難しさ:
    • つまり、 USIDvs usId(またはparseDBMXMLウィキペディアの例)。

したがって、この回答を受け入れられた回答の代替として投稿します。すべての頭字語は一貫して扱う必要があります。頭字語は他の単語と同様に扱う必要があります。ウィキペディアの引用

...一部のプログラマーは、略語を小文字の単語のように扱うことを好みます...

だから再:OPの質問、私は受け入れられた答えに同意します。正解です:getUnescoProperties()

しかし、これらの例では別の結論に達すると思います。

  • US TaxesusTaxes
  • Player IDplayerId

したがって、2 文字の頭字語を他の頭字語と同様に扱うべきだと思う場合は、この回答に投票してください.

キャメルケースは仕様ではなく慣習です。だから私は世論のルールを推測します。

編集:投票がこの問題を決定する必要があるというこの提案を削除します; @Brian Davidが言うように;スタックオーバーフローは「人気コンテスト」ではなく、この質問は「意見に基づく」として閉じられました)

多くの人が頭字語を他の単語のように扱うことを好みますが、より一般的な方法は、頭字語をすべて大文字にすることです (たとえそれが「嫌悪感」につながるとしても)。

その他のリソース:

  • 一部の人々は略語と頭字語を区別することに注意してください
  • 注 Microsoft のガイドラインでは、2 文字の頭字語と「2 文字を超える頭字語」を区別しています。
  • 一部の人々は、略語/頭字語を完全に避けることを推奨していることに注意してください
  • CamelCase / PascalCase を完全に避けることを推奨する人もいます。
  • 一部の人々は、「一貫性」を「内部的に矛盾しているように見えるルール」と区別しています (つまり、2 文字の頭字語を 3 文字の頭字語とは異なるものとして扱います)。「一貫性」を「一貫して同じルールを適用すること」と定義する人もいます (ルールが内部的に矛盾していても)。
  • フレームワーク設計ガイドライン
  • マイクロソフトのガイドライン
于 2014-11-27T13:36:40.783 に答える
255

Microsoft が書いたいくつかのガイドラインcamelCaseは次のとおりです。

頭字語を使用する場合、2 文字を超える頭字語にはパスカル ケースまたはキャメル ケースを使用します。たとえば、HtmlButtonまたはを使用しますhtmlButton。ただし、2 文字のみで構成される頭字語は大文字にする必要がSystem.IOありますSystem.Io

識別子またはパラメーター名に省略形を使用しないでください。略語を使用する必要がある場合は、単語の標準的な略語と矛盾する場合でも、2 文字を超える略語にはキャメル ケースを使用してください。

要約:

  • 2 文字の略語または頭字語を使用する場合は、すべて大文字で入力してください。

  • 頭字語が 2 文字を超える場合は、最初の文字に大文字を使用します。

したがって、あなたの特定のケースでgetUnescoProperties()は正しいです。

于 2013-03-20T14:35:14.540 に答える
2

現在、私は次のルールを使用しています。

  1. 頭字語の大文字: XMLHTTPRequest, xmlHTTPRequest, requestIPAddress.

  2. 略語のキャメルケース: ID[entifier], Exe[cutable], App[lication].

IDは例外です。申し訳ありませんが、本当です。

大文字を見ると、頭字語、つまり各文字が別の単語であると思い込んでしまいます。略語は文字ごとに別の単語がないため、キャメル ケースを使用します。

XMLHTTPRequestは曖昧ですが、まれなケースであり、それほど曖昧ではないので、大丈夫です。ルールとロジックは美しさよりも重要です。

于 2017-07-12T20:05:01.340 に答える
1

JavaScript Airbnb スタイル ガイドでは、これについて少し説明しています。基本的:

// bad
const HttpRequests = [ req ];

// good
const httpRequests = [ req ];

// also good
const HTTPRequests = [ req ];

私は通常、先頭の大文字をクラスとして読むので、それを避ける傾向があります。結局のところ、それはすべて好みです。

于 2018-02-01T23:49:23.920 に答える
0

ユネスコは、通常 (英語で) 頭字語ではなく単語として読まれるため、特殊なケースです。UEFA、RADA、BAFTA のように、BBC、HTML、SSL とは異なります。

于 2016-07-16T18:36:32.210 に答える
0

HTML大文字 ( ) または小文字 ( ) のいずれかを使用しhtml、両方を使用しない ( )ことによって、頭字語の読みやすさを優先しようとする別のキャメルケース規則もありますHtml

したがって、あなたの場合、書くことができますgetUNESCOPropertiesunescoProperties変数やUNESCOPropertiesクラス (クラスの慣例では大文字で始める) についても書くことができます。

XML HTTP Request という名前のクラスのように、2 つの頭字語を組み合わせたい場合、このルールは扱いにくくなります。大文字で始まりますが、XMLHTTPRequest読みにくく (XMLH TTP Request ですか?)、XMLhttpRequestキャメルケースの規則を破ってしまうため (XM Lhttp Request ですか?)、最善のオプションは大文字と小文字を混在させることです:XMLHttpRequestです。実際にW3C が使用したもの。ただし、この種の命名は推奨されません。この例でHTTPRequestは、より適切な名前になります。

ID/ID の正式な英単語は ID のようですが、頭字語ではありませんが、同じ規則を適用できます。

この慣習はかなり人気があるようですが、これは単なる慣習であり、正しいとか間違っているということはありません。慣例に固執し、名前が読めるようにしてください。

于 2016-05-12T14:10:36.547 に答える