web-dev-qa-db-ja.com

変数名:下線、下線なし、またはキャメルケース?

変数名はさまざまな方法で記述できますが、私がよく知っている最も一般的なものは次のとおりです。

  • thisisavariable、
  • this_is_a_variable、および
  • thisIsAVariable。

これらのうちどれが好ましいのですか、そしてなぜですか?

7
gablin

一部のプログラミング言語またはフレームワークには、変数の命名に関する規則があります。

変数に名前を付ける方法よりも重要なのは、プロジェクトの間、一貫性を保ち、特定のスタイルを守ることです。これはチーム内で非常に重要になり、コードを読んだ人なら誰でもコードを一目で簡単に理解できなければなりません。

私見残りは好みの問題です。

32
romeroqj

個人的にはキャメルケースが好みです。最も重要なのは、変数名とその意味を読み取れることです。そのため、アンダーケースを使ってもキャメルケースを使っても問題ないと思います。最初の例(thisisavariable)だけが悪い方法だと思います。なぜなら、読みづらいからです。

一般的にはプログラミング言語に依存します!

5
Tim

変数名の頭字語を処理する必要がある場合は、下線を好むことがあります。

たとえば、「My QRT team」が意味のある変数名であるとします。


1.) MyYAQRTTeam -or-
2.) MyYaqrtTeam -or-
3.) my_yaqrt_team
4
davidhaskins

Bjarne Stroustrupは、いくつかの調査によると、アンダースコアの命名が最も読みやすいと主張しています。彼がどの研究について言及しているかはわかりませんが、明らかに、空白で区切られた単語は、他のスタイルに比べて最も自然に読みやすくなっています。

タイピングに関しては、残念ながらアンダースコアスタイルは大文字と小文字が少し異なります。

3
mojuba

それはプログラミング言語に依存します。下線は、Pythonで推奨される命名規則です。 C#では、キャメルケースが推奨される規則です。

1
Ant

最初の種類の変数名は使用しないでください。

それ以外は環境に応じて使用できます。ここでは、自分の選択だけでなく、言語やライブラリのスタイルも重要です。言語には、明示的なスタイルガイドがある場合があります。ライブラリにはアドホックな名前が付いている場合がありますが、それも考慮する必要があります。

たとえば、API関数がNamedLikeThatとsoDoTheirArgumentsである厳密な型指定の言語でWindowsのもとで書く場合、傾向に倣い、型の接頭辞付きのキャメルケースを使用するのが理にかなっています。同様に、Unixで弱い型付けの言語で書く場合は、typical_call(may_look、like_that)でも問題ありません。

ここには普遍的な真実はありません。すべてが読みやすく、誰もが同意するや否やです。ルールは好きなように拡張できます。私は、たとえば、アンダースコアで始まるローカルパラメータに名前を付けるという古くなった習慣を持っています。たとえば、C++コンストラクタは次のようになります。

C :: C(const int _iCount):m_iCount(_iCount){}

とても便利です。

1

誰もが同意する限り、詳細は本当に重要ではありません。

私はすでに存在するものを選択します:

  • チームの新しい人々への採用を支援する
  • 自分でホイールを発明する必要はありません
  • チェックおよびリファクタリングするためのツールのサポートが得られる場合があります

ほとんどのコーディング標準は特定の言語用であり、変数のタイプを区別します。 (private、public、staticなど)。名前を見れば、どのような変数なのかがわかります。

C#の例については、C#のさまざまなコーディングガイドラインについて このブログ投稿 を参照してください。

0
KeesDijk

優先されるのは、使用している言語とライブラリの1つです。スタイルに一貫性を持たせることが重要です。使用する環境を守ることで、異なるスタイルが混在するのを防ぐことができます。すべての言語がそのような支配的なスタイルを持っているわけではありませんが(C++が頭に浮かびます)。これらの場合、それは純粋に個人的な好みです。何かに同意し、それに固執するだけです。

0
gix

これは、チームメンバーによる相互の合意に完全に依存します。結局のところ、コードは開発者、レビュー担当者、監査人、およびその他のチームメンバーを対象としているため、クリーンで、簡単に変更可能で、あいまいさがないようにする必要があります。変数には、特定のクラスまたは関数のスコープがほとんどなく、意味のある名前を持つことが期待されています。変数がその意図を伝える限り、ケースは名目のままです。したがって、承認済みの標準を使用して、開発中に従うことができます。

0
Jaqen H'ghar