0

厳格な社内コード標準で新しい仕事を始めたところです。そのうちの1つは、以前Javascriptで何度も見たことが_ありますが、オブジェクトの外部からアクセスしてはならないオブジェクトのプロパティのプレフィックスとして使用しています。

私の事実上の個人的なコーディング標準は、多くの関数とプリミティブを使用する傾向があり、メソッドでオブジェクトを公開すると、これらは通常、構文糖衣構文であり、繰り返し使用される汎用プラグインのエイリアスになります。各関数には異なる目的があり、必要なデータのみが与えられます。その結果、特定のスコープ内では、最低限のものだけが公開され、デフォルトではすべてが非公開になります。

underscore-prefixed-properties規則は、ここでの他の2つの大きな規則と密接に関連しています。1つはハンガリアン記法で、もう1つはすべてを追加する必要のあるモノリシック神オブジェクトの使用です。だから私は、文化的に、それ以来どのように_うまく適合するかを見ることができます

  1. すべてがグローバルオブジェクト内の(プロパティなどの)プロパティとして公開される必要があります
  2. したがって、どのコードも他のコードを見ることができるので、メタコード化されたシステムを使用して、プログラマーが誤ってお互いのコードを踏みにじらないようにします。

コーディング標準は台座に保持されていますが、ここでは誰もそれらが何のためにあるのか、またはその理由を適切に説明できないように、それらは受け取られました。私の皮肉な見方は、初期の例では、開発者は汎用の分離されたコードを実装するのに適しているとは思わなかったか、JSにカプセル化する方法を知らなかったということです。その後、ハンガリアン記法は、効果的に一貫性を保つために開発されました。本質的に危険なコードアーキテクチャに対する人間の認知的努力を補うため。

公開されているが接頭辞が付いているプロパティの値について、あまり冷笑的な説明を教えて_もらえますか?

4

1 に答える 1

0

_ プレフィックス (場合によっては m_ も) を使用する理由は、一方のインスタンス変数と他方のローカル変数とパラメーターを区別するためです。したがって、特にそれらが同じ名前の場合、それらを混同することはできません。もう 1 つの理由は、パブリックでないインスタンス変数とパブリックに表示されるプロパティを区別することです。これらはインスタンス変数によってバックアップされるため、同じ名前にする必要があります。VB.NET のような言語では、大文字と小文字を区別できないため、プレフィックスが追加されます。

于 2013-02-14T18:16:42.927 に答える