命名規則に関する多くのドキュメントを読みましたが、PascalとCamelの両方の命名規則を最も推奨しています。まあ、私はこれに同意します、それは大丈夫です。これは一部の人にとっては喜ばしいことではないかもしれませんが、オブジェクトやクラスに特定の方法で名前を付ける理由について、あなたの意見を聞きたいと思っています。
このタイプの命名規則はどうなりましたか、および/またはなぜそれらは悪いのですか?
構造体に名前を付けたいので、接頭辞として「struct」を付けます。私の理由は、IntelliSenseを使用すると、すべての構造体が1つの場所に表示され、構造体プレフィックスが表示される場所であればどこでも、それが「構造体」であることがわかっているためです。
structPerson
structPosition
別の例は列挙型ですが、接頭辞として「enum」を付けることはできませんが、「enm」を付けることもできます。
enmFruits
enmSex
繰り返しますが、私の理由は、IntelliSenseでは、すべての列挙が1か所に表示されるためです。
.NETには非常に多くの組み込みデータ構造があるため、これにより検索を減らすことができると思います。この例では.NETを使用しましたが、言語に依存しない回答を歓迎します。
Joelはこれについて良い記事を書きました
つまり、Systems Hungarian表記ではなく、AppsHungarianを使用する必要があります。
なぜなら、それがintなのか、longなのか、それとも何であれ、誰が気にするのかというと、私が気にするのは、型ではなく、値の「種類」だけだからです。
それがハンガリアン記法です。まだ使用されていますが、IDEが型の処理に役立つ言語ではあまり使用されていません。 (つまり、C#Java)。これらの言語では、プレフィックスで指定された情報はすでにIDEで提供されているため、不要と見なされます。
タイプの「タイプ」は重要ではありません。 class
、struct
、およびenum
は、定義にとって意味があるだけです。struct
であり、class
ではないという理由だけで、別の方法で使用したり、1つとして参照したりしないでください。
「ハンガリアン記法」を使用する最も賢明な方法は、関数から型を分離することだけだと思います。
types
instances of types
functions
タイプがアプリケーションドメインで適切な名前を持っている場合、基礎となる表現は重要ではありません。私は散文や数学のように読めるコードが好きです。英語では「officePost」ではなく「PostOffice」と言うので、「serviceEmail」より「EmailService」の方が好きです。
オブジェクト指向プログラミング言語では、この「システムハンガリー概念」はほとんど場所がありません。すべてがオブジェクトである言語を検討してください。 すべてがオブジェクトなので、すべての変数に「obj」のようなプレフィックスを正しく使用できます。しかし、整数変数と倍精度変数に「int」と「dbl」を使用したとしても、他の無数のオブジェクトはどうでしょうか。プログラム内のすべてのクラスとそれが使用するすべてのライブラリのプレフィックスを発明しますか?または、「obj」のような完全に無意味なプレフィックスを使用しますか?どちらのオプションもあまり意味がありません。