Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Nombre De Las Variables.Traducciones Y Demas Palabras Rebuscadas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Nombre De Las Variables.Traducciones Y Demas Palabras Rebuscadas 
 
Hola!.

Revisando la manera en como deberíamos renombrar las variables (Notación Húngara) o como queramos.
Encontré la letra "h". En el caso de un variable del tipo Picture.

Dim hPicArchivo as Picture

Según la ayuda de gambas h de Handle. Objeto
Handle = Manejador.

¿ No habrá otra palabra mas acertada para definir eso ?


Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Martes, 07 Febrero 2012, 12:42; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nombre De Las Variables.Traducciones Y Demas Palabras Rebuscadas 
 
Hola Shell, viene bien tu consulta para revisar un poco este tema.

Este tipo de notaciones o convenciones de nombre en las que se pone énfasis en que el nombre contenga prefijos que indiquen su tipo de datos, proviene de lenguajes como C que son débilmente tipificados y en los que el ámbito de una variable puede ser muy amplio.

Si en un programa se usan variables globales resulta muy importante saber con sólo leer su nombre qué tipo de datos se pueden almacenar en ella, porque la declaración de las variables no suele estar a la vista del programador cuando éste escribe código que las usa.

Si lenguaje es débilmente tipificado o directamente no tipificado, puede resultar aún más importante porque de lo contrario el programador podría guardar datos de tipos incorrectos en la variable y ello llevaría a un error que sólo se manifestaría en tiempo de ejecución.

Ahora bien, en gambas las variables globales no existen y si el programador comprende mínimamente que la mejor forma de tratar con la complejidad es hacer que las unidades de programa (módulos, funciones, procedimientos, clases, métodos) sean realmente lo más pequeñas e independientes que sea posible, entonces, el problema desaparece.

Veamos, si al escribir un método o función el programador sabe que ese código debe ser breve (entre 15 y 20 líneas para dar una métrica fácilmente comprensible), entonces siempre tendrá a la vista la declaración de las variables locales, por lo que no es necesario usar prefijos que indiquen su tipo de datos.

Si al escribir una clase el programador aplica la misma idea (no más de 50 líneas) resulta que la declaración de las variables también queda a la vista. Además fácilmente puede utilizar la característica de ocultamiento del editor de código para sólo ver las signaturas de los métodos y la declaración de variables de la clase. Lo mismo aplica si lo que está escribiendo es un módulo.

Entonces, no es necesaria una convención de nombres compleja. Lo más importante usar UpperCamelCase o lowerCamelCase para que los nombres sean fácilmente legibles.

Hay otra cuestión y es que gambas no maneja espacios de nombres. El problema se da, por ejemplo, cuando se debe declarar una propiedad y una variable privada asociada o un parámetro real cuyo valor se debe asignar a una variable privada, porque no pueden tener el mismo nombre y no se pueden distinguir usando una letra mayúscula o minúscula en una de ellas (porque gambas no es "case sensitive"):

'Este código no es válido
Private Nombre AS String

Property Nombre AS String
 



'Este código tampoco es válido
Private nombre AS String

Property Nombre AS String
 


Entonces, estamos obligados a escribir dos identificadores diferentes y aprovechando esa situación lo que solemos hacer es colocar como prefijo de la variable privada un signo pesos:

'Este código sí es válido
Private $Nombre AS String

Property Nombre AS String
 


Pero tal convención no es necesaria realmente para indicar el ámbito de la variable (que en este caso es privada) sino para evitar la doble declaración del mismo identificador.

Otro ejemplo típico es:

Private Nombre AS String

'Este código no es válido porque se repite la declaración del identificador Nombre
Public Sub _new(Nombre AS String)
  Nombre = Nombre
End

Public sub DiTuNombre()
  Print Nombre
End
 


El caso anterior es problemático porque gambas no lo maneja bien. gambas no nos advertirá de ningún problema, pero lo que obtendremos es un error lógico: al ejecutar el método DiTuNombre la variable Nombre contiene una cadena vacía.

En conclusión, las convenciones de nombres que utilizan prefijos para indicar el tipo de datos de una variable o su ámbito no son realmente necesarias si el programador escribe código bien modularizado. Sin embargo, necesitamos recordar que debemos usar identificadores distintos para una propiedad y su variable privada asociada o para un parámetro cuyo valor inicializará a una varible privada.

Un caso en que sí puede ser útil utilizar un prefijo es para distinguir arrays o colecciones de variables simples porque distinguirlas sólo con Plural/Singular puede ser propenso a errores.

Private $Persona AS Persona

Private $Personas AS Persona[]

Public sub HagoAlgo()
  ...
  'Es fácil cometer este error:
  $Persona.Count
End
 


Private $Persona AS Persona

'La a significa Array, si fuera una colección usaríamos $cPersonas
Private $aPersonas AS Persona[]

Public sub HagoAlgo()
  ...
  'Ahora es un poquito más difícil cometer este error:
  $Persona.Count
End
 



Saludos.

PD: este tema deberías haberlo puesto en el foro General no en OffTopic
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
última edición por fabianfv el Martes, 07 Febrero 2012, 16:39; editado 2 veces 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nombre De Las Variables.Traducciones Y Demas Palabras Rebuscadas 
 
Hola Fabian.

fabianfv escribió: [Ver mensaje]


Ahora bien, en gambas las variables globales no existen y si el programador comprende mínimamente que la mejor forma de tratar con la complejidad es hacer que las unidades de programa (módulos, funciones, procedimientos, clases, métodos) sean realmente lo más pequeñas e independientes que sea posible, entonces, el problema desaparece.



Lo mas parecido es una variable Publica, haciendo luego referencia a donde esta se encuentra.Se parecen.
En otro post preguntare sobre un tipo de variable.

Citar:


Entonces, no es necesaria una convención de nombres compleja. Lo más importante usar UpperCamelCase o lowerCamelCase para que los nombres sean fácilmente legibles.



¿ Que es Camel ?.No creo que sea camello..
Se entiende que UpperCase, es mayúsculas, y lowerCase  minúsculas.Pero Camel en medio.

Citar:

Un caso en que sí puede ser útil utilizar un prefijo es para distinguir arrays o colecciones de variables simples porque distinguirlas sólo con Plural/Singular puede ser propenso a errores.

Private $Persona AS Persona

Private $Personas AS Persona[]

Public sub HagoAlgo()
  ...
  'Es fácil cometer este error:
  $Persona.Count
End
 




Pero el editor de gambas se tendría que dar cuenta de que $Persona  no es un array y no saldría la propiedad Count.  

Citar:
PD: este tema deberías haberlo puesto en el foro General no en OffTopic


Cierto, no tengo ni idea como lo puse aquí.Se podría mover.

Gracias Fabian.

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nombre De Las Variables.Traducciones Y Demas Palabras Rebuscadas 
 
Shell escribió: [Ver mensaje]

Lo mas parecido es una variable Publica, haciendo luego referencia a donde esta se encuentra.Se parecen.

Exacto, esa es otra razón por la que es importante que las unidades de programa sean pequeñas.

Shell escribió: [Ver mensaje]

¿ Que es Camel ?.No creo que sea camello..
Se entiende que UpperCase, es mayúsculas, y lowerCase  minúsculas.Pero Camel en medio.

CamelCase: se supone que las dos C mayúsculas se parecen a las jorobas de un camello  

Citar:

Un caso en que sí puede ser útil utilizar un prefijo es para distinguir arrays o colecciones de variables simples porque distinguirlas sólo con Plural/Singular puede ser propenso a errores.

Private $Persona AS Persona

Private $Personas AS Persona[]

Public sub HagoAlgo()
  ...
  'Es fácil cometer este error:
  $Persona.Count
End
 


Shell escribió: [Ver mensaje]

Pero el editor de gambas se tendría que dar cuenta de que $Persona  no es un array y no saldría la propiedad Count.  

Es cierto, pero también depende de qué tan rápido uses el teclado. Puede pasar, a mí me ha pasado    Pero de todos modos es un problema bastante trivial que no justifica el uso de ese tipo de prefijos.

Ahora bien, el beneficio que puede tener usarlos también depende de los conocimientos, experiencia y gusto del programador. Si un programador encuentra que le resultan útiles me parece perfecto que los use. Yo sólo quería exponer algunos argumentos que muestran que no son necesarios.

Saludos
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Traducciones shordi General 0 Sabado, 03 Octobre 2009, 18:13 Ver último mensaje
shordi
No hay nuevos mensajes Censor De Palabras, Sin Acabar Shell Aplicaciones/Fragmentos de Código 12 Domingo, 05 Octobre 2014, 20:07 Ver último mensaje
Shell
No hay nuevos mensajes Me Sale Nombre Autor Con Nombre Paquete En... v3ctor General 1 Martes, 28 Junio 2016, 14:41 Ver último mensaje
v3ctor
No hay nuevos mensajes A Vueltas Con Las Traducciones Shell General 3 Martes, 28 May 2019, 08:55 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron