2009-05-27 22 views
2

J'ai cessé d'utiliser la notation hongroise partout, sauf dans l'interface utilisateur, où souvent je une étiquette de nom d'utilisateur, une zone de texte de nom d'utilisateur, un nom d'utilisateur variable locale, un validateur de champ obligatoire, un nom d'utilisateur propriété et paramètre de méthode ainsi de suite, souvent tous dans le même contexte.Nommer des conseils pour remplacer/éviter la notation hongroise dans l'interface utilisateur?

actuelle: lblUser, txtUser, rfvUser, _USER, l'utilisateur, l'utilisateur

Si je fais l'évidence, userLabel, UserTextBox, UserRequiredFieldValidator, il semble que je suis juste substiuting plus pour les préfixes suffixes plus courts.

Et le champ _ pour indiquer est marqué par FxCop, mais sans préfixe, il entrerait en conflit avec la convention utilisateur/utilisateur approuvée.

Des suggestions?

Répondre

4

Je toujours utilise généralement la notation hongroise pour les objets UI car je trouve que cela rend mon code plus lisible.

J'utiliser des choses comme m_firstNameTextBox ou m_countryComboBox pour les contrôles de l'interface utilisateur, puis m_firstName et m_country pour les valeurs de chaîne de ces contrôles.

A la fin de la journée, vous devez utiliser tout ce que vous préférez. La règle générale pour éviter la notation hongroise est aussi mauvaise que celle qui stipule son utilisation religieuse. Il est obivous que des choses comme intCounter, strName sont overkill mais dans d'autres cas, il ne fait bon sens pour indiquer le type de classe dans le nom de variable et dans mes contrôles de l'interface utilisateur d'opinion se trouve être l'un des cas où il est logique.

1

Je préfère le hongrois même s'il conduit à des noms très longs dans l'interface utilisateur (à cause du problème que vous avez mentionné en question). Ma seule suggestion est d'être cohérent dans toute l'équipe.

2

Il n'y a rien de mal avec la notation hongroise, tant qu'elle est utilisée pour rendre le code plus lisible. Si vous pensez que cela ne contribue pas à cela, ne l'utilisez pas.

Ah, et s'il vous plaît ne pas utiliser à la fois 'utilisateur' et 'utilisateur'. Il est difficile à lire, à utiliser, à maintenir et à mettre en communication. Si deux choses différentes ont deux significations différentes, alors la notation hongroise est une meilleure option que le codage cette information en basculant entre les caractères majuscules/minuscules. Je ne sais pas qui a inventé la sensibilité à la casse dans les langages du programme, mais il a fait plus de dégâts que quiconque ne l'aurait imaginé à ce moment-là. Je déteste faire des erreurs de compilation parce que je tapais « ID » au lieu de « Id » ou « usbdrive » quand il aurait dû être «USBDrive.

+1

Je pense que la sensibilité à la casse n'a pas été tellement inventée que simplement faite par défaut, car elle est un peu moins coûteuse (au moins sur un système ASCII). J'ai l'impression que les langages plus récents et de plus haut niveau sont plus susceptibles d'être insensibles à la casse pour les identificateurs. – cheduardo

+0

Oui, il est beaucoup plus facile de comparer si les caractères sont exactement égaux. Ne me lancez même pas sur le code source Unicode. C'est une chienne à lire, et je ne sais même pas comment taper la plupart des caractères. –

+0

Bien que ce ne soit pas TOTALEMENT vrai, il est possible qu'une zone de texte soit changée en zone de liste déroulante et qu'une personne oublie ou ne veuille pas changer le nom du contrôle. Faire du txt Ce qui est très trompeur. – VoronoiPotato

1

Utilisez minuscules et underscores, et la question de cas va. SomeIdiotSomewhereDecidedThisWasAGoodWayToDoThingsAndIfIFindHimIWillKillHim.

+0

J'aurais été d'accord, mais trois ans de codage quelque part que les variables nom de variable et TypeName sont mandatés a changé d'avis. – CJBrew