問題タブ [hungarian-notation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ハンガリー語表記がほとんど軽蔑されている場合、「コンストラクターのアッパーキャメルとその他すべてのロワーキャメル」がなぜそれほど人気があるのですか?
少なくともここ StackOverflow では、ハンガリー語表記が悪いと見なされることが最も多いようです(ただし、少数派はまだ支持しています)。
ここ数か月間、私がほとんどのコーディングを行ってきた JavaScript の世界では、本質的に非常によく似た命名規則が採用されているようですが、UpperCamelCase
オブジェクト コンストラクターに名前を付けるという、それに反対する人は見たことがありません。 vslowerCamelCase
他のすべてに名前を付けます。
したがって、違いは表面にあるように見えます。
- ハンガリー語表記ではプレフィックスが使用されますが、JavaScript では大文字と小文字が使用されます。
- ハンガリー語表記は多くのことを区別できますが、JavaScript は「オブジェクト コンストラクタ」と「非オブジェクト コンストラクタ」しか区別できません。
「システム ハンガリー語」は「アプリケーション ハンガリー語」とは異なると言う人もいます。前者はタイプを示し、後者はタイプがカバーしないものを示します。この場合、通常、「システム ハンガリー語」はまだ悪いと見なされますが、「アプリケーション ハンガリー語」は良いと見なされる場合があります。
JavaScript のキャメル ケーシング規則はシステム ハンガリー語に似ているため、その点では何のメリットもありません。
ハンガリー語表記法に反対する人々の主張は、JavaScript オブジェクト コンストラクターにも当てはまるようです。
- とにかくコンパイラは型を知っています。
- これに関しては、IDE の方がはるかに優れています。
- 型が変わると脆すぎる。
コードが乱雑になると、コードが読みにくくなります。
では、より一般的なハンガリー語の表記法では問題がない場所を問題なく使用できるようにする、この JavaScript 規則の違いは何でしょうか?
優れた JavaScript IDE が不足しているのでしょうか? 使用範囲が限られているため、それほど悪くはありませんか? それは、動的言語が実際には型の方法をあまり持っていないためですか? 使いすぎないから問題ないのでは?
(これが SO ではなく、programmers.SE に属している場合は、移行してください。)
php - PHPハンガリアン記法の「Codesniffer」
私は自分のプロジェクトでPHANを使用していますが、コードがPHANに準拠していることを検証するための何らかのコードニファーがあるかどうか疑問に思います。
hungarian-notation - `m_` 変数プレフィックスとはどういう意味ですか?
主にゲーム開発に関連するチュートリアル、サンプル、その他のコードで、変数( 、、...) にm_
プレフィックスが使用されているのをよく見かけます。m_World
m_Sprites
なぜ人々はm_
変数に接頭辞を追加するのですか?
c++ - Visual Assist Xの名前変更シンボルはどのように機能しますか?
巨大なコードからハンガリアン記法を削除したいのですが、アドオンのハンドルがどのように置き換えられるのかわかりません。
そして、VAリファクタリングツールで「pNothing」をクリックして「nothing」に名前を変更します。この関数でのみ名前を変更しますか、それともプロジェクト全体のすべての関数とクラスでpNothingという名前のすべてのポインターの名前を変更しますか?
php - ハンガリアン記法:混合型
PHPの変数にこのようにHNCを使用しています$p_nId
。p
はパラメータを表すので、変数のスコープはn
型を表します(PHPは大まかに型付けされていますが、何らかの構造を提供します)。したがって、ここでは数字を使用します。混合タイプのHNCにもタイププレフィックスはありますか?
c++ - WinAPI の sz および pwsz プレフィックス
WinAPI の CHAR 文字列と WCHAR 文字列のハンガリー語表記プレフィックスについて、少し混乱しています。CHAR 文字列を使用する場合、通常、次のようなプレフィックスが使用されます。
ゼロで終わる文字列 szString があるので、すべて問題ありません。しかし、WCHAR 文字列を使用する場合、通常は次のようなプレフィックスが使用されます。
これは、ゼロで終わるワイド文字列へのポインターを表します... しかし、私たちの型はこのようには見えません。ゼロで終わるワイド文字列へのポインターは、WCHAR** または PWSTR* です。私が間違っている?CHAR 文字列の場合は sz で、WCHAR 文字列の場合は wsz ではなく、なぜ pwsz なのですか?
vb.net - テキストボックスと対応するラベルのハンガリー表記の正しい代替は何ですか?
StackOverflow で無数の質問が寄せられ、オンラインで調査した無数の記事にもかかわらず、テキスト ボックスとそれに対応するラベルにハンガリー語表記を使用しないようにする方法について明確な答えが見つかりません。
テキストボックスの名前をUsername
. ハンガリー語表記を避けるという精神で、それに対応するラベルを何と呼べばよいでしょうか?
私の唯一の選択肢はUsernameTextBox
andで実行することですUsernameLabel
が、これは原則としてハンガリー語表記法と変わらないと認識しています。
私がハンガリー語表記法を使用していないことをほのめかす声が際限なくありますが、単一の代替手段を提供しているものはありません.
注: 私はすでに真のハンガリー語表記が何であるかを理解しています。はい、私はそれの間違った、しかしどこにでもある使用について言及しています。
java - 「いいえ」の理由でクラスを拡張すると、Javaのパフォーマンスが低下しますか?
多くの状況で役立つ Vector3i クラスがありますが、バグを防ぐために型システムを使用するように拡張していることに気付きました。
たとえば、世界のオブジェクトにローカルな「自我中心」の vector3i と、世界座標の vector3i があるとします。
この 2 つは変換なしでは当然互換性がなく、互いに意味がありません。
True Hungarian Notationを使用するのは良い状況ですが、代わりにクラスを拡張し、新しい機能を追加していません。
JVM/Hotspots の最適化を考慮すると、パフォーマンスが低下しますか?
javascript - ハンガリー記法とは?
ネイティブ Javascript、Jquery、または Angular での使用例はありますか? 変数名の前の $ の使用について読んでいたときに、この表記法について知りました。$ は Jquery でよく使われますが、ハンガリー記法とも関係がありますか?