Die Verwendung der ungarischen Notation wird im Allgemeinen als unangemessen angesehen , es ist jedoch üblich, GUI-Steuerelemente mit den Bezeichnungen userNameTextBox
und zu finden userNameLabel
.
Tragen Sie den Kontrolltyp in den Namen ein? Ist das nicht eine Art ungarische Notation?
language-agnostic
coding-style
gui
notation
Jader Dias
quelle
quelle
Antworten:
Wie du es sagst. Im Allgemeinen ist die ungarische Notation eine schlechte Praxis. Ich möchte meine Namen so nah wie möglich an der Domain halten, aber manchmal versuchen Sie zu sagen, dass dies das Textfeld und das Etikett ist .
Schauen Sie sich Kramis Antwort auf eine andere Frage an, um herauszufinden , warum er in bestimmten Situationen immer noch Ungarisch spricht.
Wie bei jedem Code ist Konsistenz und Selbstbewertung der Schlüssel. Wenn Sie und Ihr Team sich darüber einig sind, wie verschiedene GUI-Steuerelemente beschriftet sind und welche Elemente beschriftet werden müssen, ist das in Ordnung :)
quelle
Eigentlich benutze ich die ungarische Notation, nur für GUI-Steuerelemente. Ich benutze so etwas wie lblText, rbGroup1, lvTable usw. für Beschriftungen, Optionsfelder und Listenansichten.
Sie ändern sich sowieso nie und es ist klar, welche Variable ein GUI-Steuerelement ist und welche nicht.
Da ich jedoch WPF mit Bindungsmöglichkeiten verwende, ist es nicht mehr notwendig, diese überhaupt zu benennen, da es an eine C # -Eigenschaft gebunden ist.
Übrigens, machen Sie nicht den Fehler, ein Steuerelement lvListViewPersons zu nennen, was ich gelegentlich sehe. Wenn einer Variablen das Präfix lv vorangestellt ist, können Sie sehen, dass es sich bereits um eine Listenansicht handelt.
quelle
Unser Team verwendet die ungarische Notation für GUI-Steuerelemente, nicht für den Rest des Codes.
Typisches Beispiel, eine Beschriftung gefolgt von einem Textfeld:
Außerdem ist es so einfach, Ihre Textbox zu finden. Geben Sie einfach "txt" ein und Intellisense erledigt den Rest.
quelle
Ich benutze die ungarische Notation für GUI-Elemente. Es ist wirklich der Schmerz, wenn Sie QtDesigner schließen, Visual Studio öffnen und wenn Sie Text auf die Schaltfläche setzen möchten, wenn Sie einen Textboxnamen
username
habenpassword
, usw. Wenn Sie Qt verwenden, ist dies kein großes Problem, da alle GUI-Elemente in einui
Objekt eingeschlossen sind (ui.username
), aber wenn ich Windows Forms verwende, bläht das Textfeld mit dem Namen Benutzername nur den Namespace auf.In diesem Fall
txtUsername
,btnLogin
,lblStatus
etc. sind deutlich bessere Möglichkeiten.quelle
Ich vermeide die Verwendung der ungarischen Notation für GUI-Steuerelemente. Ich würde es vermeiden, ein Steuerelement wie "lblFirstName" zu benennen, da es mir eigentlich egal ist, dass es sich um ein Etikett handelt. Aus Sicht der Datenbindung ist es nur etwas zu binden.
Für Steuerelemente, die einen Namen benötigen, füge ich normalerweise das Präfix
ux
für "Benutzererfahrung" hinzu. Dies macht deutlich, dass das Objekt nur für den Benutzer zur Interaktion vorgesehen ist. In meinem Ansichtsmodell wird möglicherweise eine EigenschaftFirstName
und in der Ansicht ein Steuerelement aufgerufenuxFirstName
. Dies hat den zusätzlichen Vorteil, dass alle meine benannten Steuerelemente in meiner IDE gut gruppiert sind.quelle
ux
Präfix nicht selbst Ungarische Notation? Vielleicht die andere Art (ich vergesse die Namen der beiden), die anzeigt, Bedeutung und nicht Typ, aber immer noch eine Form von Ungarisch ;-)apps hungarian
im Gegensatz zusystems hungarian
. Apps ungarisch ist nicht annähernd so schädlich wie Systeme, aber ich denke, die Bedeutung von'ux 'könnte zu hoch sein, um überhaupt als Apps betrachtet zu werden. Ich denke, Sie könnten es als ungarisch oder so bezeichnen :)Ich weiß, dass die Leute die ungarische Notation insgesamt nicht ausstehen können, aber ich finde sie an vielen Orten immer noch sehr nützlich. Für GUI benutze ich mindestens wnd Präfix.
Das Problem, die ungarische Notation nicht zu verwenden, ist einfach: Sobald Sie das glatte Wasser von MSVS verlassen, macht die Navigation einen Nasentauchgang. Sie sehen eine Art von
SomeValue = SomeOtherValue
und Sie haben keine Ahnung, was los ist, wenn Sie nicht jedes verdammte Ding nachschlagen. Über grep oder gute alte Suche, die in der Regel die Produktivität genau dort tötet, sind andere IDEs als QT und MSVS wirklich schlecht bei Lookups.quelle