私が何年にもわたって出会ってきた変数名には、さまざまなスタイルがあります。
命名規則に関する現在のウィキペディアのエントリはかなり軽いです...
名前/説明といくつかの例で識別される、変数の命名規則の簡潔なカタログを見てみたいです。
規約が特定のプラットフォーム コミュニティによって特に支持されている場合、それも注目に値します。
私はこれをコミュニティ wiki に変えているので、それぞれの規則について回答を作成し、必要に応じて編集してください。
私が何年にもわたって出会ってきた変数名には、さまざまなスタイルがあります。
命名規則に関する現在のウィキペディアのエントリはかなり軽いです...
名前/説明といくつかの例で識別される、変数の命名規則の簡潔なカタログを見てみたいです。
規約が特定のプラットフォーム コミュニティによって特に支持されている場合、それも注目に値します。
私はこれをコミュニティ wiki に変えているので、それぞれの規則について回答を作成し、必要に応じて編集してください。
私が見た中で最も優れた命名規則のセットは、本「Code Complete」にあります。Steve McConnell は、命名規則と多くの例について素晴らしいセクションを持っています。彼の例は、さまざまな言語の多くの「ベスト プラクティス」を実行していますが、最終的には、特定のアクションを決定するのは開発者、開発マネージャー、またはアーキテクトに任されています。
PEP8は、Pythonコミュニティで比較的影響力のある標準ライブラリの一部であるPythonコードのスタイルガイドです。ボーナスポイントとして、Python標準ライブラリで使用される命名規則に加えて、一般的な命名規則の概要を説明します。
PEP8によると、標準ライブラリの変数、インスタンス変数、関数、およびメソッドは、読みやすくするためにアンダースコアで区切られた小文字の単語を使用することになっています。
foo
parse_foo
a_long_descriptive_name
名前と予約語を区別するには、アンダースコアを追加します。
in_
and_
or_
弱くプライベートな名前('from M import *'によってインポートされない)は、単一の下線で始まります。名前マングリングでプライバシーが強化されている名前は、二重下線で始まります。
_some_what_private
__a_slightly_more_private_name
Pythonの「特別な」メソッドである名前は、二重アンダースコアで開始および終了します。
__hash__ # hash(o) = o.__hash__()
__str__ # str(o) = o.__str__()
命名規則が何であれ、通常、簡単に区別することはできません。
変数プレフィックスに関するこの質問で説明されているように、ローカル変数には不定冠詞(a、an、some)を使用し、インスタンス変数には冠詞を使用しないという命名規則を使用します。
したがって、プレフィックス(私の方法、またはその質問にリストされている他のプレフィックス)は、変数の命名規則を洗練する1つの方法になります。
あなたの質問は変数に限定されないことを私は知っています、私は命名規則のその部分を指摘したかっただけです。
Sun は、Java の変数名規則のリストをここで公開しています。このリストには、パッケージ、クラス、インターフェース、メソッド、変数、および定数の命名規則が含まれています。
変数の状態に関するセクション
変数を除いて、すべてのインスタンス、クラス、およびクラス定数は大文字と小文字が混在し、最初の文字は小文字です。内部の単語は大文字で始まります。変数名は、アンダースコア _ またはドル記号 $ の文字で始めることはできませんが、どちらも使用できます。
変数名は短くても意味のあるものにする必要があります。変数名の選択はニーモニックでなければなりません。つまり、何気ない観察者にその使用の意図を示すように設計されています。一時的な「使い捨て」変数を除いて、1 文字の変数名は避ける必要があります。一時変数の一般的な名前は、整数の i、j、k、m、および n です。文字の c、d、および e。
いくつかの例は次のとおりです。
int i;
char c;
float myWidth;
EinarHoestによる「JavaProgrammersPhrasebook」があります。
彼は、メソッド名の文法構造とメソッド本体の構造を分析し、次のような情報を収集しました。
add- [noun]-*これらのメソッドには多くの場合、パラメーターがあり、オブジェクトを作成します。フィールド値を返すことはめったにありません。このフレーズは、事実上すべてのアプリケーションに表示されます。
etcetera...何百ものオープンソースプロジェクトから収集されました。
背景情報の詳細については、彼のSLE08論文を参照してください。