Como você nomeia seus controles da GUI?

12

Geralmente, é uma prática recomendada usar a notação húngara , mas é comum encontrar controles da GUI denominados userNameTextBoxe userNameLabel.

Você coloca o tipo de controle em seu nome? Isso não é um tipo de notação húngara?

Jader Dias
fonte
em geral, a mina não tem nomes, pois não precisa deles no WPF
jk.

Respostas:

12

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 :)

phareim
fonte
8

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.

Michel Keijzers
fonte
3
Concordo com isso. Controles de GUI são a única lugar onde notação húngara não é um pecado capital (IMO é claro)
Wayne Molina
4

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:

  • lblFirstName
  • txtFirstName

Além disso, facilita a localização da sua caixa de texto, basta digitar "txt" e o intellisense fará o resto.

Carra
fonte
1

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, passwordetc. Quando você usa Qt, não é grande problema, porque todos os elementos gráficos são enrolados dentro uide 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.

Nemanja Boric
fonte
1

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 uxpara '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 chamada FirstNamee a exibição pode ter um controle chamado uxFirstName. Isso tem o benefício adicional de que todos os meus controles nomeados estão bem agrupados no meu IDE.

MattDavey
fonte
3
O uxprefixo 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 ;-)
Wayne Molina
Eu acho que você está se referindo ao apps hungariancontrário systems 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 :)
MattDavey
1

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 = SomeOtherValuee 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.

Codificador
fonte