Professional Documents
Culture Documents
Ejemplos[editar]
Prefijo
Significado
Booleano (int)
by
dw
lbl
Objeto Label
lp
lpfn
lpsz
Entero de 16 bits
Enumeracin
pt
rgb
sz
txt
Cajas de texto
Situacin actual
Prefij
Significado
se aadan como observadores de un evento (ya que usar esta notacin para
cualquier mtodo o funcin sera bastante engorroso).
'int'. Para nmeros enteros en general, tanto enteros normales como aquellos tipos
enteros de ms capacidad (como long).
'lock'. Para objetos de control que nos faciliten el uso de exclusiones mutuas,
candados y semforos.
'objeto'. Para objetos en general (no se debe usar la notacin hngara para distinguir
entre tipos de objetos, salvo escasas excepciones).
'string'. Para variables de tipo cadena de texto, ya sean nativos o arrays de chars.
s
Este tipo de datos es muy habitual en lenguajes sin lgica de punteros. Si se usara el
objeto de tipo String en estos casos, acudiremos a este identificador en lugar de al
o de objeto.
'struct'. Similar al 'o' de objetos, ste se usara para variables de tipo struct en general
(es decir, objetos de tipo primitivo).
'byte'.
Este ejemplo de notacin hngara no parecer tan crtico y extrao como el que se ha puesto
de ejemplo al principio del artculo, en el cual se llegaban a utilizar hasta cuatro letras para
denotar el tipo.
Notacin Hngara
Publicado en 25/Sep/2012 CodeJobs Software y Estndares de codificacin 0
Comentarios
36 96 0
Notaci on hunga
Espero que a los programadores de Visual C++ o .Net les sirva esta informacin :)
See
more
at:
http://www.codejobs.biz/es/blog/2012/09/25/notacionhungara#sthash.gXo7BpNL.dpuf
Historia
La notacin hngara original, que ahora se llamara Aplicaciones hngaro, fue inventado por
Charles Simonyi, un programador que trabajaba en Xerox PARC circa 1972-1981, y que ms
tarde se convirti en arquitecto jefe de Microsoft. Puede haber sido derivado del principio
anterior de utilizar la primera letra del nombre de una variable para ajustar su tipo - por
ejemplo, las variables cuyos nombres comenzaron con las letras I a N en FORTRAN son
enteros por defecto.
szName: variable es una cadena terminada en cero, lo que fue uno de los prefijos
sugeridas originales de Simonyi.
Aplicaciones notacin hngara se esfuerza para codificar el tipo de datos lgicos en lugar del
tipo de datos fsicos, de esta manera, da una idea de lo que el propsito de la variable es, o lo
que representa.
usName: variable representa una cadena insegura, que debe ser "saneada" antes de
su uso
La mayora, pero no todos, de los prefijos Simonyi sugeridas son de naturaleza semntica. Los
siguientes son ejemplos del documento original:
d es un prefijo que significa diferencia entre dos valores, por ejemplo, dY podra
representar una distancia a lo largo del eje Y de un grfico, mientras que slo una
variable llamada y podra ser una posicin absoluta. Esto es totalmente de naturaleza
semntica.
Es posible que el cdigo utilizando aplicaciones notacin hngara para contener a veces
Sistemas hngaros al describir las variables que se definen nicamente en funcin de su tipo.
Ejemplos
bBusy: boolean
chInitial: char
fBusy: boolean
dbPi: double
Pfoo: Puntero
Los mnemnicos para punteros y matrices, que no son tipos de datos reales, son seguidos
generalmente por el tipo del elemento de datos en s:
La notacin a veces se extiende en C para incluir el mbito de una variable, separados por un
guin bajo. Esta extensin se utiliza a menudo tambin sin el tipo de especificacin de
Hungra:
Ventajas
Los partidarios argumentan que los beneficios de la notacin hngara incluyen:
Los nombres de variables pueden ser fcil de recordar de conocer slo sus tipos.
heightWindow = window.getWidth
Al programar en un lenguaje que utiliza tipado dinmico o que est completamente sin
tipo, los adornos que se refieren a los tipos dejan de ser redundante. Estos idiomas no
suelen incluir declaraciones de tipos, por lo que las nicas fuentes de qu tipos se
permiten son los mismos nombres, documentacin, tales como comentarios y por la
lectura del cdigo de entender lo que hace. En estos idiomas, incluyendo una
indicacin del tipo de una variable puede ayudar al programador. Como se mencion
anteriormente, la notacin hngara se expandi en un lenguaje.
En programas complejos con una gran cantidad de objetos globales, con una notacin
bsica prefijo puede facilitar el trabajo de bsqueda de la parte interior del editor.
Escribiendo btn y presionando causas del editor para que aparezca una lista de los
objetos Button.
Desventajas
La mayora de los argumentos en contra de la notacin hngara son objeto los sistemas de
notacin hngara, no aplicaciones notacin hngara. Algunos temas posibles son:
Todos los entornos de desarrollo integrados modernos muestran los tipos de variables
en la demanda, y de forma automtica operaciones de bandera que utilizan tipos
incompatibles, por lo que la notacin en gran medida obsoleta.
La mayor parte del tiempo, sabiendo que el uso de una variable implica conocer su
tipo. Por otra parte, si no se conoce el uso de una variable, no puede deducirse de su
tipo.
Hace cdigo menos legible, por ofuscar el propsito de la variable con el tipo de
huelga y los prefijos de alcance.
Opiniones notables
Robert C. Martin:
Linus Torvalds:
"Codificacin del tipo de una funcin en el nombre es cerebro daado-el compilador
sabe los tipos de todos modos y puede comprobar aquellos, y slo confunde el
programador."
Steve McConnell:
"A pesar de la convencin de nomenclatura de Hungra ya no es de uso generalizado,
la idea bsica de la estandarizacin en concisas, precisas abreviaturas sigue teniendo
valor. Prefijos estandarizados permiten comprobar los tipos de precisin cuando se
est utilizando tipos de datos abstractos que el compilador no puede necesariamente
marque ".
Bjarne Stroustrup:
"No, no lo recomiendo" hngaro ". Considero 'hngaro' una tcnica que puede ser til
en las lenguas sin tipo, pero es totalmente inadecuado para un lenguaje de
programacin que soporte genrico y programacin orientada a objetos, tanto de los
que hacen hincapi en la seleccin de las operaciones en funcin del tipo un
argumentos. En este caso, "la construccin del tipo de un objeto en los nombres
'simplemente complica y reduce al mnimo la abstraccin".
Joel Spolsky:
"Si usted lee el artculo de Simonyi de cerca, lo que quera llegar era el mismo tipo de
convencin de nombres como lo haca en mi ejemplo anterior donde decidimos que
significa eso de" cadena insegura "y s significa" cadena de seguridad ". Son los dos
tipo cadena. El compilador no le ayudar si asigna una a la otra y Intellisense no le dir
bupkis. Pero son semnticamente diferentes. Tienen que ser interpretado de manera
diferente y se tratan de manera diferente y algn tipo de funcin de conversin tendrn
que llamar si asignar una a la otra, o usted tendr un error de tiempo de ejecucin. Si
tiene suerte. Todava hay una enorme cantidad de valor a las aplicaciones de Hungra,
ya que aumenta la funcin de proximidad en el cdigo, lo que hace que el cdigo sea
ms fcil de leer, escribir, depurar y mantener, y lo ms importante, tiene un cdigo
incorrecto mirar mal. "