web-dev-qa-db-ja.com

命名手順の規則-動詞の形容詞を配置する場所とそれに続くオブジェクトの規則

私は次の声明をコーディング完全な本で読んでいます:

プロシージャに名前を付けるには、強い動詞の後にオブジェクトを使用します。通常、機能的にまとまりのあるプロシージャは、オブジェクトに対して操作を実行します。名前はプロシージャが何をするかを反映する必要があり、オブジェクトに対する操作は動詞とオブジェクトの名前を意味します。 PrintDocument()、CalcMonthlyRevenues()、CheckOrderlnfo()、およびRepaginateDocument()は、適切なプロシージャ名のサンプルです。

私のコードではこの原則を適用していますが、一部のルーチンでは名詞の例の前に形容詞があります。

現在使用しています

  _getFirstView()
  _getLastView()
  _getActiveView()
  _getActiveMasterView()

たとえば、次のバリアントを使用して、この命名を改善できるかどうか疑問に思っています

  _getViewFirst()
  _getViewLast()
  _getViewActive()
  _getViewMasterActive()
...

このシナリオで意味のある良い習慣は何ですか?

2
Radex

いいえ、自然言語の自然な順序から離れて単語の順序を変更しないでください。

あなたが引用しているガイドラインの要点は、メソッド名が読みやすく、有益であることを保証することです。メソッド名をお互いにと一致させることによって達成できる情報量の増加は、そのような並べ替えによる損失の読みやすさを上回ることはありません。 getFirstView()は完全に問題ありません(そしてgetViewFirst()は他のメソッドの前に呼び出すことが重要であることを意味するため、実際には誤解を招く可能性があります)。

9
Kilian Foth

私は英語の専門家ではありませんが、コードコンプリートブックからのアドバイスを私が解釈したところ、既存のメソッド名はすでにその規則に従っているようです。

私が読んだとき、Code Completeは"an object"というフレーズを使用しています。これは、メソッドの命名アドバイスは、特定の識別可能なobjectの説明ではなく、オブジェクトの名詞。

もちろん、名詞は通常、オブジェクトの説明の最も重要な部分であり、そのようなオブジェクトが1つだけ存在する場合は、それ自体で十分です。ただし、すべて同じ名詞を共有する同じコンテキスト内に複数のオブジェクトが存在する場合、名詞だけでは1つのオブジェクトを識別するだけでは不十分です。

したがって、アドバイスが単一のオブジェクトとコレクション/リストなどのオブジェクトの両方のケースをカバーしていると仮定すると、フレーズ'an object'は単一のオブジェクトのように聞こえますが、その名詞とその名詞の属性を説明する1つ以上の形容詞の組み合わせ。

たとえば、HappyDwarfGrumpyDwarfDopeyDwarf、またはBashfulDwarfとは明確に異なりますが、Dwarfはあいまいであり、それらのいずれかを参照してください。

4
Ben Cottrell

名前は既に指定された規則に準拠しています。

慣習では、動詞+オブジェクトを言います。この例の動詞は「get」、オブジェクトは「first view」、「last view」などです。

文法用語の「オブジェクト」は、単一の名詞である必要はありませんが、形容詞を含む節、または文全体である場合もあります。

指定されたルールは形容詞については何も述べていませんが、例CalcMonthlyRevenues()は形容詞を変更する名詞の前に置きます-通常の英語とまったく同じように、例でも同じです。

2
JacquesB