ホームページ >バックエンド開発 >PHPチュートリアル >PHP プログラミングの命名規則の概要
この記事では、基本的な概念、キャメル スタイルの命名法、キャメル ケース メソッド、パスカル メソッドなど、PHP プログラミングの命名規則を紹介します。必要な方は参照してください。
キャメルケースネーミング (キャメルケースネーミングとも呼ばれます) は、CamelCase という名前が示すように、大文字と小文字を組み合わせて変数や関数の名前を形成することを指します。プログラマーがピア間でコードを伝達しやすくするために、多くの場合、より読みやすい統一された名前付け方法が採用されます。たとえば、プログラマの中にはすべて小文字を好む人もいれば、アンダースコアを使用することを好む人もいます。そのため、私の名前で変数を書きたい場合、一般的な書き込み方法は myname、my_name、MyName、または myName になります。このような命名規則は、すべてのプログラマが読むのに適しているわけではありませんが、キャメル ケースの命名を使用すると、プログラムの可読性が向上します。たとえば、キャメル表記とアンダースコア表記を使用して名前を付けた同じ関数を次に示します。 printEmployeePaychecks(); print_employee_paychecks();最初の関数名は Camel 命名法を使用しています。関数名の各論理ブレークポイントは大文字でマークされています。 2 番目の関数名ではアンダースコア方式が使用されており、関数名の各論理ブレークポイントはアンダースコアでマークされています。 アンダースコア方式は、c の出現後に普及しました。UNIX などの多くの古いプログラムや環境で非常に一般的に使用されています。 キャメルケースは、コンピュータープログラムを作成する際の一連の命名規則 (規則) です。 キャメル スタイルの命名法では、変数名または関数名が 1 つ以上の単一の単語で構成される一意の識別子となり、最初の単語が小文字で始まるか、2 番目の単語の最初の文字が大文字になります。単語の最初の文字はすべて大文字です (例: myFirstName、myLastName)。このような変数名はラクダのこぶが次々と盛り上がっているように見えるため、この名前が付けられました。 キャメルケースという用語は、Perl 言語で一般的に使用される大文字と小文字の混合形式に由来し、Larry Wall らによるベストセラー本「Programming Perl」(O'Reilly 刊) の表紙の写真に由来しています。 。 ラクダ命名規則の命名規則は、認識性と読みやすさを高めるための、絶対的または必須ではなく、慣例とみなすことができます。 ハンプ法(スモールハンプ法) 変数は通常、CamelCase を使用して識別されます。キャメルケースとは、最初の単語を除くすべての単語の最初の文字を大文字にすることを意味します。例えば: int myStudentCount;変数 myStudentCount の最初の単語はすべて小文字で、後続の単語の最初の文字は大文字になります。 パスカル法(ビッグラクダ法) スモール キャメル ケース方式と比較して、ラージ キャメル ケース方式では、最初の単語の最初の文字も大文字になります。クラス名、関数名、属性、名前空間でよく使用されます。例えば: パブリッククラスDataBaseUser;添付のPHP命名規則 適切な命名はプログラム計画の中心です。 その名前は、それが位置する生態環境における何かの長期的かつ広範囲にわたる結果です。一般に、システムを理解しているプログラマだけが、システムに最も適切な名前を思いつくことができます。すべての名前が自然に適切であれば、関係は明確であり、意味を推測することができ、一般の人々の推論が期待できます。 対応するオブジェクトに一致する名前が少数しかない場合は、デザインをもう一度よく見ることをお勧めします。 クラスの名前付け クラスに名前を付ける前に、まずそれが何であるかを理解しておく必要があります。クラス名が提供する手がかりに基づいてクラスが何であるかをまだ思い出せない場合は、設計が十分ではありません。 3 つ以上の単語で構成される名前が混在していると、システム内のさまざまなエンティティ間で混乱が生じやすくなります。設計を確認し、(CRC Se-ssion カード) を使用して、名前に対応するエンティティに非常に多くの機能があるかどうかを確認してください。 。 派生クラスに名前を付けるときは、その親クラスの名前を使用する誘惑を避ける必要があります。クラスの名前はそれ自体にのみ関連し、その親クラスの名前とは何の関係もありません。 サフィックスが役立つ場合があります。たとえば、システムがエージェントを使用している場合、実際に情報を送信するコンポーネントに「DownloadAgent」という名前を付けます。 メソッドと関数の名前付け 通常、各メソッドと関数はアクションを実行するため、その名前はその動作を明確に示す必要があります。ErrorCheck() の代わりに CheckForErrors() を使用し、DataFile() の代わりに DumpDataToFile() を使用します。そうすることで、関数とデータがより区別しやすいオブジェクトになります。 接尾辞が役立つ場合があります: Max - エンティティに割り当てることができる最大値を意味します。 Cnt - 実行中のカウント変数の現在値。 キー - キーの値。 例: RetryMax は最大再試行数を表し、RetryCnt は現在の再試行数を表します。 接頭辞が役立つ場合があります: Is - 何かについて質問することを意味します。 Is を見るたびに、人々はそれが問題であることがわかります。 Get - 値を取得することを意味します。 Set - 値を設定することを意味します 例: IsHitRetryLimit。 略語にはすべて大文字を使用しないでください いずれの場合も、次の状況に遭遇した場合は、すべて大文字を使用して表現する代わりに、最初の文字を大文字、残りの文字を小文字で表現できます。 略語。 使用: GetHtmlStatistic。 未使用: GetHTMLStatistic. 理由 名前に略語が含まれている場合、人々の直感は大きく異なるようです。ネーミングの意味が完全に予測できるように、統一した規則を設けることが最善です。 NetworkABCKey の例を考えてみましょう。C が ABC の C であるべきか、キーの C であるべきかに注意してください。これは非常にわかりにくいです。気にしない人もいれば、嫌う人もいます。したがって、コードごとに異なるルールが表示されるため、それを何と呼ぶべきかわかりません。 例えば class FluidOz // FluidOZ は記述しないでください class GetHtmlStatistic // GetHTMLStatistic は記述しないでくださいクラスの名前付け 単語の区切り文字として大文字を使用し、その他の文字はすべて小文字で使用します 名前の最初の文字を大文字にする アンダースコア ('_') は使用しないでください。 理由 多くの命名方法によると、ほとんどの人はこれが最良の方法であると考えています。 例えば クラス名OneTwoクラス名 クラスライブラリの命名 名前空間は現在、さまざまなベンダーやグループのクラス ライブラリ間でのクラス名の競合を避けるために、ますます広く使用されています。 名前空間がまだ採用されていない場合、クラス名の競合を避けるために、一般的なアプローチはクラス名の前に一意の接頭辞を追加することです。もちろん、それ以上の文字を使用する方がよいでしょう。 例えば John Johnson のデータ構造クラス ライブラリには、次のように Jj という接頭辞を付けることができます。 classJjLinkList { }メソッドの名前付け クラスの命名に一貫したルールを採用する 理由 さまざまなルールをすべて使用しているほとんどの人は、これが最善の妥協策であると考えています。 例えば クラス名OneTwo { 関数 DoIt() {}; 関数 HandleError() {}; }クラス属性の命名 プロパティ名には文字「m」を接頭辞として付ける必要があります。 接頭辞「m」は、クラス命名に関する一貫した規則に従います。 「r」が参照を表すのと同じように、「m」は常に名前の先頭を変更します。 理由 接頭辞「m」は、クラス属性とメソッド名の衝突を防ぎます。メソッド名とプロパティ名は、特に要素にアクセスする場合によく似ています。 例えば クラス名OneTwo { 関数 VarAbc() {}; 関数 ErrorNumber() {}; var mVarAbc; var mErrorNumber; var mrName; }メソッド内のパラメータの名前付け 最初の文字には小文字を使用してください。 最初の文字以降の単語はすべて、クラスの命名規則に従って大文字になります。 理由 どの変数がどの変数に対応するかを常に知ることができます。 名前の競合を引き起こすことなく、クラス名に似た名前を使用できます。 例えば クラス名OneTwo { 関数 StartYourEngines( &$r一部のエンジン、 &$r別のエンジン); }変数の名前付け すべての文字に小文字を使用する 各単語の区切り文字として「_」を使用します。 理由 このようにして、コード内の変数の範囲が明確になります。 すべての変数はコード内で異なって見えるため、簡単に識別できます。 例えば 関数 HandleError($errorNumber) { $error = OsErr(); $time_of_error = OsErr->getTimeOfError; $error_processor = OsErr->getErrorProcessor; }参照を返す参照変数と関数 参照には接頭辞「r」を付ける必要があります 理由 さまざまな型の変数を識別しやすくする これにより、どのメソッドが可変オブジェクトを返し、どのメソッドが不変オブジェクトを返すかが決まります。 例えば クラステスト { var mrStatus; 関数 DoSomething(&$rStatus) {}; 関数 &rStatus() {}; }グローバル変数 グローバル変数には「g」という接頭辞を付ける必要があります。 理由 変数のスコープを知ることは非常に重要です。 例えば グローバル $gLog; グローバル &$grLog;名前付き/グローバル定数を定義する グローバル定数は各単語を「_」で区切ります。 理由 これは、グローバル定数に名前を付ける伝統です。他の定義と矛盾しないように注意する必要があります。 例えば 定義("A_GLOBAL_CONSTANT", "Hello world!";静的変数 静的変数には接頭辞「s」を付ける必要があります。 理由 変数のスコープを知ることは非常に重要です。 例えば 関数 test(){ 静的 $msStatus = 0; }関数の名前付け 関数名は C GNU の規則に従い、すべて小文字を使用し、単語を区切るには「_」を使用します。 理由 これにより、関連するクラス名を区別しやすくなります。 例えば 関数 some_bloody_function() { }エラーリターン検出ルール エラーを無視する場合を除き、すべてのシステム コールでエラー メッセージを確認してください。 インクルードの各システム エラー メッセージのシステム エラー テキストを定義します。 中括弧 {} ルール 3 つの主要な中括弧の配置ルールのうち、2 つが許容されます。そのうちの 1 つ目が最適です。 キーワードの下の同じ列に中括弧を配置します。 if ($condition) while ($condition) { { …… } }従来の UNIX 括弧の規則では、最初の括弧はキーワードと同じ列にあり、最後の括弧はキーワードと同じ列にあります。 if ($condition) { while ($condition) { …… } }理由 激しい議論を引き起こす非原則的な問題は、どちらの方法でも解決できます。 ほとんどの人は最初のものを好みます。その理由は、心理学の研究と研究の分野にあるものです。 最初のものを好む理由は他にもあります。使用している文字エディターが括弧一致機能 (vi など) をサポートしている場合は、次のようにするのが最善です。 大切なのはスタイルが良いことです。なぜ?大規模なプログラムがあり、この大規模なプログラムがどこで終了するかを知りたい場合に、このように言います。 言葉。まず開始括弧に移動し、ボタンを押すと、エディターは対応する終了括弧を見つけます。次に例を示します。 if ($VERY_LONG_CONDITION && $SECOND_VERY_LONG_CONDITION) { ... } そうでなければ (...) { ... }あるプログラム ブロックから別のプログラム ブロックに移動するには、カーソルと括弧一致キーを使用するだけです。一致する括弧を見つけるために行末まで前後に移動する必要はありません。 |