Geralmente, é uma prática recomendada usar a notação húngara , mas é comum encontrar controles da GUI denominados userNameTextBox
e userNameLabel
.
Você coloca o tipo de controle em seu nome? Isso não é um tipo de notação húngara?
language-agnostic
coding-style
gui
notation
Jader Dias
fonte
fonte
Respostas:
Como você diz. Em geral, a notação húngara é uma má prática. Eu gosto de manter meus nomes o mais próximo possível do domínio, mas às vezes o que você está tentando dizer é que essa é a caixa de texto e esse é o rótulo .
Veja a resposta de Kramii a outra pergunta por sua opinião bastante razoável sobre por que ele ainda usa o húngaro em certas situações.
Como em todo código, a consistência e a auto-avaliação são essenciais. Se você e sua equipe concordam em como os diferentes controles da GUI são rotulados e quais elementos precisam de rótulos, você ficará bem :)
fonte
Na verdade, eu uso a notação húngara, apenas para controles da GUI. Eu uso algo como lblText, rbGroup1, lvTable etc para etiquetas, botões de opção e exibições de lista.
Eles nunca tendem a mudar de qualquer maneira e fica claro qual variável é um controle da GUI e o que não é.
No entanto, como eu uso o WPF com possibilidades de associação, não é mais necessário nomeá-las, pois está vinculado a uma propriedade C #.
Aliás, não cometa o erro de chamar um controle lvListViewPersons do que vejo ocasionalmente. Se uma variável é prefixada com lv, você pode ver que já é uma lista.
fonte
Nossa equipe está usando a notação húngara para controles da GUI, não para o restante do código.
Exemplo típico, um rótulo seguido por uma caixa de texto:
Além disso, facilita a localização da sua caixa de texto, basta digitar "txt" e o intellisense fará o resto.
fonte
Estou usando a notação húngara para elementos da GUI. É realmente a dor quando você fecha QtDesigner, abra o Visual Studio e quando você quer texto conjunto no botão se você tem caixa de texto chamada
username
,password
etc. Quando você usa Qt, não é grande problema, porque todos os elementos gráficos são enrolados dentroui
de objeto (ui.username
), mas quando eu uso o Windows Forms, a caixa de texto denominada nome de usuário apenas incha o espaço para nome.Nesse caso,
txtUsername
,btnLogin
,lblStatus
, etc, são claramente melhores opções.fonte
Evito usar notação húngara para controles da GUI - evitaria nomear um controle como `lblFirstName 'porque realmente não me importo que seja um rótulo - do ponto de vista de ligação de dados, é apenas algo a ser vinculado.
Para controles que precisam de um nome, geralmente adiciono o prefixo
ux
para 'experiência do usuário'. Isso deixa claro que o item se destina apenas ao usuário para interagir. Por exemplo, meu modelo de exibição pode ter uma propriedade chamadaFirstName
e a exibição pode ter um controle chamadouxFirstName
. Isso tem o benefício adicional de que todos os meus controles nomeados estão bem agrupados no meu IDE.fonte
ux
prefixo não é a notação húngara? Talvez o outro tipo (I esquecer os nomes dos dois) que indica o que significa e não digita, mas ainda assim uma forma de Hungarian ;-)apps hungarian
contráriosystems hungarian
. Os aplicativos húngaros não são considerados tão prejudiciais quanto os sistemas, mas acho que o significado de'ux 'pode ser alto demais para ser considerado aplicativos. Eu acho que você poderia chamá-lo camada húngara ou algo :)Sei que as pessoas não suportam a notação húngara em geral, mas ainda a acho muito útil em muitos lugares. Para GUI, eu uso pelo menos o prefixo wnd.
O problema de não usar a notação húngara é simples: quando você sai das águas lisas do MSVS, a navegação dá um mergulho no nariz. Você vê algum tipo de coisa
SomeValue = SomeOtherValue
e não tem idéia do que está acontecendo, a menos que procure todas as coisas. Por meio de grep ou boa pesquisa antiga, que geralmente mata a produtividade ali, IDEs diferentes de QT e MSVS são muito ruins em pesquisas.fonte