¿Cómo nombras tus controles GUI?


12

En general, se considera una mala práctica utilizar la notación húngara , pero es común encontrar controles GUI con nombre userNameTextBoxy userNameLabel.

¿Pones el tipo de control en su nombre? ¿No es esto una especie de notación húngara?


en general, la mina no tiene nombres, ya que no los necesitan en WPF
jk.

Respuestas:


12

Como tú dices. En general, la notación húngara es una mala práctica. Me gusta mantener mis nombres lo más cerca posible del dominio, pero a veces lo que intenta decir es que este es el cuadro de texto y esta es la etiqueta .

Vea la respuesta de Kramii a otra pregunta para su versión muy razonable de por qué todavía usa húngaro en ciertas situaciones.

Como con todo el código, la consistencia y la autoevaluación son clave. Si usted y su equipo acuerdan cómo se etiquetan los diferentes controles de la GUI y qué elementos necesitan etiquetas, estarán bien :)


8

En realidad, uso la notación húngara, solo para controles GUI. Utilizo algo como lblText, rbGroup1, lvTable, etc. para etiquetas, botones de radio y vistas de lista.

De todos modos, nunca tienden a cambiar y está claro qué variable es un control GUI y qué no.

Sin embargo, dado que uso WPF con posibilidades de enlace, ya no es realmente necesario nombrarlos, ya que está vinculado a una propiedad C #.

Por cierto, no cometas el error de llamar a un control lvListViewPersons lo que ocasionalmente veo. Si una variable tiene el prefijo lv, puede ver que ya es una vista de lista.


3
De acuerdo con esto. Los controles GUI son el único lugar donde la notación húngara no es un pecado capital (OMI, por supuesto)
Wayne Molina

4

Nuestro equipo está utilizando la notación húngara para los controles GUI, no para el resto del código.

Ejemplo típico, una etiqueta seguida de un cuadro de texto:

  • lblFirstName
  • txtFirstName

Además, facilita la búsqueda de su cuadro de texto, simplemente escriba "txt" e intellisense hará el resto.


1

Estoy usando notación húngara para elementos GUI. Realmente es el dolor cuando se cierra QtDesigner, Visual Studio y abierta cuando se desea el texto conjunto en el botón cuadro de texto si usted tiene el nombre username, password, etc. Cuando usa Qt, no es gran problema, ya que todos los elementos de la GUI se envuelven en el interior uide objetos ( ui.username), pero cuando uso Windows Forms, el cuadro de texto llamado nombre de usuario solo aumenta el espacio de nombres.

En ese caso, txtUsername, btnLogin, lblStatus, etc, son claramente mejores opciones.


1

Evito usar la notación húngara para los controles de la GUI; evitaría nombrar un control como `lblFirstName 'porque realmente no me importa que sea una etiqueta; desde el punto de vista de la vinculación de datos, es solo algo para vincular.

Para los controles que necesitan un nombre, generalmente agrego el prefijo ux'experiencia de usuario'. Eso deja en claro que el elemento está destinado solo para que el usuario interactúe con él. Por ejemplo, mi modelo de vista podría tener una propiedad llamada FirstNamey la vista podría tener un control llamado uxFirstName. Esto tiene el beneficio adicional de que todos mis controles nombrados están bien agrupados en mi IDE.


3
¿No es el uxprefijo en sí mismo la notación húngara? Tal vez el otro tipo (me olvido de los nombres de los dos) que indica significado y no tipo, pero sigue siendo una forma de húngaro ;-)
Wayne Molina

Creo que te estás refiriendo a apps hungarianlo contrario systems hungarian. Las aplicaciones húngaras no se consideran tan dañinas como los sistemas, pero creo que el significado de 'lux' podría ser de un nivel demasiado alto para ser considerado aplicaciones. Supongo que se podría llamar capa húngara o algo así :)
MattDavey

1

Sé que la gente no puede soportar la notación húngara en general, pero todavía la encuentro muy útil en muchos lugares. Para GUI, uso el prefijo wnd al menos.

El problema de no usar la notación húngara es simple, una vez que abandonas las aguas tranquilas de MSVS, la navegación se sumerge en la nariz. Ves algo así SomeValue = SomeOtherValuey no tienes idea de lo que está sucediendo a menos que busques cada maldita cosa. A través de grep o una buena búsqueda antigua, que generalmente mata la productividad allí mismo, los IDE que no sean QT y MSVS son realmente malos en las búsquedas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.