Il est généralement considéré comme une mauvaise pratique d'utiliser la notation hongroise , mais il est courant de trouver des contrôles GUI nommés userNameTextBox
et userNameLabel
.
Mettez-vous le type de contrôle dans son nom? N'est-ce pas une sorte de notation hongroise?
language-agnostic
coding-style
gui
notation
Jader Dias
la source
la source
Réponses:
Comme tu dis. En général, la notation hongroise est une mauvaise pratique. J'aime garder mes noms aussi près que possible du domaine, mais parfois ce que vous essayez de dire, c'est que c'est la zone de texte et c'est l'étiquette .
Voir la réponse de Kramii à une autre question pour son interprétation très raisonnable des raisons pour lesquelles il utilise toujours le hongrois dans certaines situations.
Comme pour tout code, la cohérence et l'auto-évaluation sont essentielles. Si vous et votre équipe êtes d'accord sur la façon dont les différents contrôles GUI sont étiquetés et sur les éléments qui ont besoin d'étiquettes, tout ira bien :)
la source
En fait, j'utilise la notation hongroise, uniquement pour les contrôles GUI. J'utilise quelque chose comme lblText, rbGroup1, lvTable etc. pour les étiquettes, les boutons radio et les vues de liste.
Ils n'ont jamais tendance à changer de toute façon et il est clair quelle variable est un contrôle GUI et ce qui ne l'est pas.
Cependant, puisque j'utilise WPF avec des possibilités de liaison, il n'est plus vraiment nécessaire de les nommer du tout, car il est lié à une propriété C #.
Btw, ne faites pas l'erreur d'appeler un contrôle lvListViewPersons ce que je vois occasionnellement. Si une variable est préfixée par lv, vous pouvez voir que c'est déjà une vue de liste.
la source
Notre équipe utilise la notation hongroise pour les contrôles GUI, pas pour le reste du code.
Exemple typique, une étiquette suivie d'une zone de texte:
De plus, il vous permet de trouver facilement votre zone de texte, tapez simplement "txt" et intellisense fera le reste.
la source
J'utilise la notation hongroise pour les éléments GUI. Il est vraiment la douleur lorsque vous fermez QtDesigner, ouvrez Visual Studio et quand vous voulez texte ensemble sur le bouton si vous avez zone de texte nommé
username
,password
etc. Lorsque vous utilisez Qt, ce n'est pas gros problème, parce que tous les éléments de l' interface graphique sont emballés à l' intérieurui
objet (ui.username
), mais lorsque j'utilise Windows Forms, la zone de texte nommée nom d'utilisateur ne fait que gonfler l'espace de noms.Dans ce cas,
txtUsername
,btnLogin
,lblStatus
, etc. sont clairement meilleures options.la source
J'évite d'utiliser la notation hongroise pour les contrôles GUI - j'éviterais de nommer un contrôle comme `lblFirstName 'parce que je ne me soucie pas vraiment que ce soit une étiquette - du point de vue de la liaison de données, c'est juste quelque chose à lier.
Pour les contrôles qui ont besoin d'un nom, j'ajoute généralement le préfixe
ux
pour «expérience utilisateur». Cela montre clairement que l'élément n'est destiné qu'à l'interaction de l'utilisateur. Par exemple, mon modèle de vue peut avoir une propriété appeléeFirstName
et la vue peut avoir un contrôle appeléuxFirstName
. Cela a l'avantage supplémentaire que tous mes contrôles nommés sont bien regroupés dans mon IDE.la source
ux
préfixe n'est-il pas lui-même la notation hongroise? Peut-être l'autre type (j'oublie les noms des deux) qui indique le sens et non le type, mais toujours une forme de hongrois ;-)apps hungarian
par opposition àsystems hungarian
. Les applications hongroises ne sont pas considérées comme aussi nocives que les systèmes, mais je pense que la signification de'ux 'pourrait être trop élevée pour être considérée comme des applications. Je suppose que vous pourriez l'appeler couche hongroise ou quelque chose :)Je sais que les gens ne supportent pas la notation hongroise dans l'ensemble, mais je la trouve toujours très utile dans beaucoup d'endroits. Pour l'interface graphique, j'utilise au moins le préfixe wnd.
Le problème de ne pas utiliser la notation hongroise est simple, une fois que vous quittez les eaux douces de MSVS, la navigation prend un piqué du nez. Vous voyez une sorte de
SomeValue = SomeOtherValue
et vous n'avez aucune idée de ce qui se passe à moins que vous ne regardiez chaque putain de chose. Via grep ou une bonne vieille recherche, qui tue généralement la productivité là-bas, les IDE autres que QT et MSVS sont vraiment mauvais pour les recherches.la source