Foro con Clase C/C++

¿Por que se nombra con nombres abstractos y abreviaturas las var

oliverxac

Nº de hilos:1

Nº de mensajes:2

miércoles, 3 de agosto de 2022


¿Por que se nombra con nombres abstractos y abreviaturas las variables en los programas?

 

Hola, después de dos décadas fuera del mundillo de la programación, voy a intentar volver a ponerme al día, aunque hay mucha información y es difícil enfocar en las herramientas correctas.

 

Dejo aquí la pregunta el asunto, como primera participación en el foro, viendo ejemplos de diferentes programas en diferentes webs, y diferentes lenguajes, casi todos adolecen, incluso libros reconocidos, con una falta de "humanidad" a la hora de identificar las variables y nombrar las funciones, entiendo que la costumbre se hace ley y tal vez sea para escribir menos letras, pero es profundamente incomodo encontrar variables con nombres simples, tengo entendido que los interpretadores de código reducen e implementar al bajo nivel variables con nombres más largos sin ningún problema... ya no estamos en los 70 u 80, donde el lenguja emsamblador era bastante limitado en espacio libre.

bueno, nada má, ojeando libros como codigos de buena programación, o el programador pragmático, bueno, de este ojeando resumenes de otros, por que vale una pasta y no lo he encontrado en pdf, mobi o epub en castellano... bueno el caso es que siempre se requiere un nivel d abstracción inncesario para nombrar las variables, yo siempre intenté nombrar las variables de formas muy detalladas, incluso con apellidos, y en relación a los datos que van a contener.

es algo terrible leer el codigo de otros y encontrarse siempre ese nivel de simplicidad innecesario.

 

bueno, ya lo he dicho, aquí lo dejo, en la www, rompo una lanza por que los programadores realicen programas con nombres de variables pensados por un humano para ser leidos por un humano, pa que hacerle el trabajo al compilador.

 

y en el mundo de los teras y megas de hdd o sdd, el espacio es irrrelvante...

 

salu2.

PD: cuando mas complejo es un programa, mas letras tienen que tener las variables, incluso con "_" apellidos para ver de donde son, a donde están y que datos guardan...

siento que estoy envejeciendo al expresar esto en voz alta, me siento como un T-800, Cyberdyne 101, pero no me siento obsoleto... talvez un poco cascado, solo que presiento que los nuevos lenguajes de programación no han mejorado las costumbres delos años 90... no se, igual es un error de concepto, pero yo insistiré. PERSONALIZEN sus programas, cumplan los codigos de buena programación, y todo lo que se dice en los libros de referencia de programadores, pero los nombres de las cosas, variables, funciones, incluso punteros y arrays, creo que no hay necesidad de nominarlos como si fuesemos un 286 o un motorola 8086.

Creo que se usan incorrectamente e insuficientemente la potencia y capacidad de análisis de los nuevos compiladores y codificadores. ¿PARA que trabajar en lenguajes altamente estructurados, de alto nivel y luego que se renuncie a un lenguaje más humano?

 

bueno, nada m.as

 

PD: felicidades por el diseño web y por el tamaño de las fuentes del foro... otra gran idea...

 

Tema cerrado

Salvador Pozo

Nº de hilos:0

Nº de mensajes:25

miércoles, 17 de agosto de 2022


Hola:

A la primera pregunta: no se debería hacer, pero creo que existen varias razones para hacerlo:

- Costumbre (mala costumbre) los viejos programadores, como comentas más abajo, que aprendimos a programa con máquinas de 16K, no podíamos permitirnos el lujo de usar nombres descriptivos para variables o funciones.

- Elitismo aún hay programadores que piensan que cuanto más enrevesado sea el código, mejores programadores son, y un código que solo comprendan ellos es el sumun, aunque dos semanas después no sean capaces de saber qué hace ni siquiera ellos.

- Más costumbre, cuando estás escribiendo el código de una función y tus variables tienen nombres descriptivos, pero largos, teclear esos nombres puede hacer que pierdas el hilo de lo que estabas intentando programar. (Esto me ha pasado mucho), es como cuando var a la cocina y cuando llegas has olvidado para qué ibas.

En mi opinión, hay que evitar y corregir estas prácticas. Se pueden usar nombres cortos para variables auxiliares, que se usan en porciones pequeñas de código, como 'i' o 'j' para bucles, pero si tienes que ir a la cabecera de la función (siete páginas de código arriba) para ver qué significado tiene la variable 'x3', o tu bucle de iteración con la variable 'i' tiene doscientas líneas, algo estás haciendo mal.

Para el resto se deben usar nombres que faciliten la lectura del código, su comprensión y eventualmente su mantenimiento.

Usando los editores actuales ya no vale la tercera excusa, el editor completa los identificadores después de escribir unas cuantas letras, evitando que tengas que escribir nombres completos o que se comentan errores ortográficos.

Y el elitismo, bueno, a esos es mejor dejarlos solos. :)

Cuando tenemos entre manos aplicaciones grandes, que usan muchas librerías y que implican a varios programadores, elegir nombres para variables, funciones o clases puede ser un problema muy serio, ya que tendemos a usar los mismos nombres para cosas parecidas. Afortunadamente, casi todos los lenguajes actuales disponen de espacios con nombre (namespaces), que evitan este tipo de conflictos, a costa, eso sí, de alargar los nombres.

Es buena idea ponerse a uno mismo algunas reglas para elegir nombres, por ejemplo:

Empezar siempre los nombres de variables con minúscula y los de funciones o clases con mayúscula.

Dejar las nombres que empiezan con '_' para objetos que se usen en depuración.

Reservar los identificadore más comunes ('i', 'n', 'aux', 'x', etc) para variables locales, e intentar no usarlos como identificadores en clases, esto evita el ocultamiento de métodos y datos.

Cuando un identificador esté compuesto de varias palabras, poner la inicial de cada una en mayúscula, como 'numeroVueltas', o separarlas con un '_', 'numero_vueltas'.

Usar notación húngara, que consiste en añadir un prefijo que indique el tipo, si la variable 'saldo' es de tipo float, se llamaría 'fsaldo'. Personalmente, la notación húngara no es una de mis opciones favoritas, ya que si nos vemos obligados a cambiar el tipo de un objeto (por ejemplo de int a long int), tendremos que cambiar el identifiador en todo el proyecto. Pero se usa habitualmente en APIs, que se supone es código estable.

No hablo de variables globales porque actualmente, al menos en C++, y en general en POO, están desaconsejadas.  

Cuando se trabaja en un entorno con varios programadores es habitual que existe un manual con reglas de estilo, que definen todo este tipo de opciones, y cada programador debe ajustarse y seguir esas reglas. Esto facilita que otros compañeros comprendan el código y se pueda seguir manteniendo, aunque alguno de los miembros abandone el equipo, o haya que modificar el programa tiempo después. Pensad en vosotros mismos como alguien que tiene que corregir o ampliar el programa que estás escribiendo dentro de dos años y que no le parezca que lo ha escrito un desconocido.

P.D.: Lo de las fuentes no es totalmente mérito nuesto, diseñar la web para que sea 'responsive', es decir, para que se pueda ver claramente en cualquier dispositivo, implica usar fuentes de fácil lectura. Eso y que intentar leer texto de tamaño 10 en un monitor de 19 pulgadas empieza a ser un problema serio a cierta edad. :)

 

Tema cerrado

oliverxac

Nº de hilos:1

Nº de mensajes:2

lunes, 29 de agosto de 2022


Hola,

...muchas gracias por esa fantastica respuesta, se anima uno mucho descubriendo que hay mas personas que opinan igual... desconocía algunas partes de la forma de trabajar queveo que hay quien si las lleva a cabo, supongo será que todos o muchos saben lo que tienen que hacer, pero no se hace... 

 

la verdad es que la programación en vez de simplificarse se ha "a-complejado" bastante... todo es mas confuso y la curva de aprendizaje es brutalmente abstracta... en los nuevos lenguajes, veré como se me dá todo en estos tiempos...

Offtopic, pues la web luce bonica y se ve bien... se agradece otra forma de visualizar las cosas, uno esta un poco cansado de ver siempre las webs de distinta temática, todas iguales con los mismos encapusaldos o contenedores... internet hoy en día en aras de una redución de costes donde no toca se ha convertido en un escaparate de brutalismo técnologico, como el brutalismo en arquitectura... todo hormigon, pues en la www muchos sitios todos igual... 

 

me gusta como esta web. Saludos por la elección de este sistema... ;-)

 

saludos y hasta pronto.

Tema cerrado