命名規則はさまざまな言語で似ていますか? そうでない場合、違いは何ですか?
6 に答える
各言語には特定のスタイルがあります。少なくとも一つの。各プロジェクトは特定のスタイルを採用しています。少なくとも、そうすべきです。これは、おそらく開発リーダーの好みに基づいて、言語が使用する正規のスタイルとは異なるスタイルになることがあります。
どのスタイルを使用しますか?
言語に優れた標準ライブラリが付属している場合は、そのライブラリの規則を採用するようにしてください。
あなたの言語に正規の本 (The C Programming language、The Camel Book、Programming Ruby など) がある場合は、それを使用してください。
言語設計者 (C#、Java が頭に浮かびます) が実際に一連のガイドラインを作成することがあります。特にコミュニティもそれらを採用している場合は、それらを使用してください。
複数の言語を使用する場合は、柔軟性を保ち、使用している言語に合わせて好みのコーディング スタイルを調整することを忘れないでください。Python でコーディングする場合は、C# でコーディングする場合とは異なるスタイルを使用するなどです。
他の人が言ったように、物事は大きく異なりますが、さまざまな言語で最も一般的に使用されている命名規則の大まかな概要を次に示します。
lowercase, lowercase_with_underscores
:
ローカル変数と関数名に一般的に使用されます (典型的な C 構文)。
UPPERCASE, UPPERCASE_WITH_UNDERSCORES:
変更されない定数および変数に一般的に使用されます。BASIC などの一部の (古い) 言語には、すべての変数名にすべて大文字を使用する規則もあります。
CamelCase, javaCamelCase:
通常、関数名と変数名に使用されます。関数のみに使用し、変数の小文字または lowercase_with_underscores と組み合わせて使用する人もいます。javaCamelCase が使用される場合、通常は関数と変数の両方に使用されます。
この構文は、Win32 API と Java API がこれを行う方法であるため、外部 API でも非常に一般的です。(ライブラリが内部的に別の規則を使用している場合でも、通常は関数名の (java)CamelCase 構文でエクスポートします。)
prefix_CamelCase, prefix_lowercase, prefix_lowercase_with_underscores:
名前空間をサポートしない言語 (C など) でよく使用されます。プレフィックスは、通常、関数または変数が属するライブラリまたはモジュールを示します。通常、グローバル変数とグローバル関数に予約されています。プレフィックスは大文字にすることもできます。一部の規則では、内部関数と変数に小文字のプレフィックスを使用し、エクスポートされたものに大文字のプレフィックスを使用します。
もちろん、物事に名前を付ける方法は他にもたくさんありますが、ほとんどの規則は、上記のいずれか、またはそれらのさまざまな方法に基づいています。
ところで、わざとハンガリー語表記について言及するのを忘れていました。
ほとんどの命名規則は異なると思いますが、開発者、たとえば、私は次のような変数に名前を付けています: mulitwordVarName、しかし、私が一緒に働いた開発者の一部は、mulitword_var_name、multiwordvarname、aj5g54ag などを使用しました。 .
もちろん共通のガイドラインもありますが、言語の構文/設計の違いによる違いもあります。
.NET (C#、VB など) の場合は、次のリソースをお勧めします。
- Framework Design Guidelines - 命名規則を含む .NET コーディング ガイドラインの決定版
- 命名ガイドライン- Microsoftのガイドライン
- 一般的な命名規則- 別の一連の MS ガイドライン (C#、C++、VB)
こんばんは
私ができる最善の推奨事項の 1 つは、Steve McConnell の Code Complete ( Amazon リンク) の関連セクションを読むことです。彼はネーミングテクニックについて優れた議論をしています。
HTH
乾杯、
ロブ
何年も前に、賢明な年配のプログラマーがハンガリー語表記の弊害を教えてくれました。これは実際のレガシー システムであり、Microsoft は Windows SDK で採用し、後に MFC で採用しました。これは、C++ のような強い型付け言語ではなく、C のような緩い型付け言語を中心に設計されています。当時、私は Windows 用の Borland の Turbo Pascal 1.0 (後に Delphi となった) を使用して Windows 3.0 をプログラミングしていました。
要するに、この時点で私が取り組んでいたチームは、単純な接頭辞に基づいて、非常に単純でほぼすべての言語に適用可能な独自の標準を開発しました-
- a - 引数
- l - ローカル
- m - メンバー
- g - グローバル
ここで強調するのはスコープです。コンパイラに依存して型をチェックします。気にする必要があるのは、データが存在するスコープだけです。これには、リファクタリングによって何かの型を変更した場合に、そのすべてのインスタンスを検索して置き換える必要がないという点で、厄介な古いハンガリー語表記よりも多くの利点があります。
16年近く経った今でも、私はこの慣行の使用を推進しており、私が開発したほぼすべての言語に適用できることを発見しました.