Contenido

Excentricidades de un desarrollador

31 ago

+ 38

Los programadores, solemos ser personas muy metódicas y acosumbradas a la rutina de sentarse delante del ordenador. A lo largo de años desarrollando, vamos acumulando vicios que marcan nuestra forma de programar. Hagamos un trato, yo te cuento los mios y tu me cuentas los tuyos, así no nos sentiremos bichos raros por tenerlos :D

Nombres de variables y funciones

Tengo la manía de usar nombres en inglés para las funciones y nombres para las variables en castellano. No puedo explicar por que lo hago, pero es así.

function getValue($valor = "ejemplo") {}

Indentación de código

Gracias, o culpa, a mi amiga/compañera Marga tengo una manía, casi obseción con la indenteción del código. Cuando un compañero me pide que le eche una mano, tengo que perder unos minutos en indentar el código, lo hago inconscientemente.

function getValue($valores = "ejemplo") {
	if ($valores) {
		foreach ($valores as $valor) {
			if ($valor == "unovalor") return $valor;
		}
	}
}

Condesación de código

Esto además de ser una manía, es un problema, e intento evitarlo en medida de lo posible ya que mi código lo ha de mantener otras personas, y en algunas situaciones puede ser infumable compactar todo en una simple línea. El uso abusivo del operador ternario tiene la culpa.

var variable = "prueba";
alert ((!variable)?"NO":(variable != "prueba")?"NO2":"es una prueba");

Soy amigo de la variable $x, y de la $a, $y, $i,…

Es raro revisar mi código y no encontrar variables criptográficas como $x, $y, $a… generalmente para formar parte de un bucle, aunque no siempre las uso de esta forma,… esto es un problema para mi y mis compañeros ya que estas variables son en muchos casos indescfrables en el código.

for (var x=0; x < listado.length; x++) {
	y = a + listado[x];
}

¿Y tu? Cuentanos tus excentricidades

  • Trabaje en un proyecto en el que el supervisor solia poner:

    devolucion nombreMetodo(param1,..,paramN)
    {

    }
    Lo odio, mucho mas estetico:
    devolucion nombreMetodo(param1,..,paramN){

    }
    Me molestaba en poner a mi manera cada metodo.
    En fin, una mania mas

  • Ostras! Creo que yo tengo todas esas manías en mayor o menor medida. Sobre todo la comentada por Seryio de colocar los corchetes en la misma linea y no en una nueva y la de “condensación” del codigo. Recuerdo que en la uni recibí varias broncas de varios profesores (y algún compañero de prácticas también :P) por ello.

    Y la que intento reducir ahora es la de nombrar variables con una sola letra, pero es una costumbre que he cogido con Javascript para optimizar código en tamaño antes de descubrir los compactadores para JS.

    La indentación no es una manía en sí, sino una comodidad para leer :) Menos mal que el VIM tiene macros para reindentar todo el código automáticamente ;)

    Un saludo!

  • Pues yo tengo las mismas que las tuyas! :D
    Sobre todo en lo de la condensación, como lo que dice Seryio, odio la gente que deja espacios innecesarios, pero bueno, cada uno con sus manías xD.

  • Pues en mi caso, paso basicamente lo mismo. No puedo trabajar con un codigo no indendado, las variables y funciones en inglés y sus correspondientes comentarios en inglés.

    A y una muy buena, dividir por bloques y la inexplicable mania de que el codigo se vea bonito, con los nombres de las variables y todo.

    :)

  • Comparto contigo la Indentación de código, es obsesivo compulsivo es superior a mi.

    Mi variable mascota es la $t siempre, siempre la uso a excepción de cuando la he usado y tengo que usar otra que en ese caso utilizo la $z.

    Suelo programar bastante con delphi y una cosa que me saca de quicio de los trozos de código que encuentro en internet es ver que las palabras clave de este lenguaje escritas en mayusculas , por ejemplo BEGIN … END, FUNCTION, PROCEDURE, STRING, etc… Siempre pierdo mucho tiempo en pasarlas a minúsculas.

    Me agrada ver que no soy el único con estas manías.

    Un saludo.

  • la indentacion es LEY…

    las otras no tanto.. las variables de una letras las utilizo para bucles…

    idioma.. todo ingles.

    condensacion: no.. no me da la cabeza para escribir eso jajajaj prefiero los if else :P

  • #Tengo la manía de usar nombres en inglés para las funciones y nombres para las variables en castellano. No puedo explicar por que lo hago, pero es así.

    Yo intento escribir código en español siempre que puedo, pero tu forma de actuar creo que es bastante lógica.

    El español tiene más posibilidades a la hora de caracterizar una sola variable, porque tenemos prefijos y sufijos, morfemas verbales, etc.. pero cuando creamos una función el inglés es más certero, porque con pocas y cortas palabras te dice una acción concreta.

    Además las funciones suelent tener forma de verbo, y en inglés los verbos son unívocos, pero en español qué forma verbal elijes?

    Un ejemplo:

    function test() {} //ingles
    //español
    function prueba() {}
    function probar() {}

    ó

    function getImageWidth () {} // indudable y corto
    //Español
    function dameAnchoImagen () {}
    function obtenerAnchoImagen () {}
    function AnchoDeImagen () {}

  • Compartimos psicosis casi en todo, lo unico es que mis variables infaltables son $i, $h, $g.
    Además antepongo una letra al nombre de la variable para “definir” su tipo de datos.
    Por ejemplo en vez de poner $nombre = “Juancito”, pongo $sNombre = “Juancito” o $nVeces = 2;.

  • -Los corchetes!

    if(…)
    {

    }
    else
    {

    }

    El código queda increíblemente más simple y legible.

    -Variables, funciones y comentarios, todos en inglés por supuesto. Un desarrollador que no sepa inglés, no es un desarrollador.

    -Usar variable i,j,h como guardas en un bucle es totalmente correcto. siempre que actuan como subindices. O ‘n’ como cota. Totalmente legible y correcto.

    -Y sobre todo mi mayor manía, insertar tabuladores, NO ESPACIOS!. Si insertas siempre tabuladores, luego la gente podrá usar el tamaño de indentación que le guste. Si usas espacios estar limitandolo!

  • La verdad es que no me gusta programar.
    Pero la indentación de código la llevan la mayoría de IDE’s… es automático con 2 clicks.

  • En primer lugar apoyo totalmente lo que dice TheViejo: el ‘indentado’ es LEY!

    Por otra parte, yo intento seguir las normas del ‘linux kernel coding style’, en las que hacen cosas como pegar el paréntesis de apertura de parámetros en las funciones y separar el paréntesis de las sentencias del lenguaje (if, while, switch). Además de que las llaves van en la misma línea si es sentencia y el la siguiente si es definición de función. Ejemplo:

    int main(int argc, char **argv)
    {

    }

    while (node) {

    }

    Sin embargo me jode mucho el código en el que separan en cada líne los tipos de datos de las funciones y parámetros, véase:

    int
    main(
    int argc,
    char **argv)
    {

    }

    El método húngaro de nombrado de variables es cómodo para iniciarse, y en según que lenguajes es de costumbre, así como el de poner las iniciales de las palabras que forman en nombre de la función en mayúsculas. La otra opción, que prefiero, es usar el guión bajo y todo en minúsculas.

    El orden de las palabras es otra de las cosas que va por tendencias, me explico:

    get_hash_table_size, set_error_message_string

    o

    hash_table_get_size, error_message_set_string

    Manías, cada uno con las suyas, y a perder tiempo ‘traduciendolo’ a nuestra manera…

  • Yo abuso totalmente de la indentación y de colocar las llaves en la linea siguiente como #9.

    Y si, no puedo tocar un código hecho sin antes “corregirlo” con la indentación y las llaves como a mi me gusta xD

    Decir que no tengo mucho tiempo, sino le pegaria una repasada al codigo de zend framework XDD

  • Jeje.. yo también suelo ponerme a indentar todo codigo que tenga que revisar, es mucho mas legible y de esta manera fácil de verlo..

    En cuanto a los corchetes, me gusta siempre ponerlos en la misma linea en que defino la funcion o inicio el bucle, no se porque no me gusta verlos en la linea siguiente xD

    Lo de condensar el codigo ni se diga.. mientras menos espacio me gusta mas.. maldito el operador ternario!

  • ^^
    casi igual que yo.
    aunque creo que usted lo hace, le faltó mencionar algo sobre los “else” cuando una variable puede tomar un valor u otro dependiendo de una condicion

    se que antes de leer ya entendió todo pero aquí va :P

    $x = valor
    if (condicion) $x = otro_valor

    ó (condicion ? verdadero : falso)

    yo tampoco sé por que las funciones casi siempre en inglés y las variables en castellano y mientras mas cortas mejor. Que buen post! ;)

    por cierto sir, si tiene tiempo, cree que podría recomendarme algunos proveedores de hosting? tuve mala suerte con mi primer proveedor y por eso le pregunto a usted =D

    Saludos ;)

  • Estoy TOTALMENTE DE ACUERDO CON #9 – Blaxter –
    Ya que realmente queda más legible.
    Yo pongo funciones y variables en igles, pero comentarios en castellano. Porque si bien queda más cómodo por nuestros caracteres como el acento, la Ñ y ect. Pero comentarios en castellano porque si hay alguien que quiera leer mi código que aprenda español como yo tengo que aprender ingles.

    y una manía que tengo que creo que es muy útil, aunque se pierde tiempo es hacer una bitácora del proyecto. La hago en un txt y pongo el nombre del proyecto, y luego la fecha y hora y abajo lo que hago , lo que voy a hacer y los resultados, además de aclaraciones de cambios que hago para mejorar el proyecto.

  • Ayer fue el Blog Day; fuiste una de las paginas destacadas.
    Saludos!

  • Una de mis manias, es poner variables con mis modismos.. algo asi como:

    var linia, myTbl;

    Aunque “linia” eso me causo broncas con mi jefe.. ahora la llamo “ringlon”.. jaja..

    Aparte de ley la descripcion de las funciones, ya ven que despues de un rato ya no sabes que onda con tanto codigo..

  • Las mias todas las que tiene andres y una mas y esto me pasa mucho me dan algo para modificar si esta hecho con tablas me vale llevar medio dia pero lo elimino y lo paso a capas.

    No

  • Tengo el mismo problema de la Indentación de código (más severo que el tuyo jeje) y de las variables $a, $b, $c… ^^U

    Pero ademas, no se si es un problema, pero yo procuro programar TODO EN CASTELLANO. TODO y a veces las funciones quedan tipo:

    obtener_clave_almacen_norte(id_almacen, estado_venta);

    Un poco largo xD pero me parecen mucho más intuitivas para mi que en ingles :P

    Un saludo.

  • Yo una de las peores son la colocacion de las ventanas. Cada ventana tiene que estar en su sitio, con la barra de programas a la derecha.

    Y los programas han tenido que ser abiertos en un orden. Sino tengo que cerrar y reabrirlos, asi me van apareciendo de arriba a abajo las ventanas.

    Me resulta imposible trabajar de otra manera. Fui hace poco a un ordenador nuevo a trabajar y me llevo un buen rato educar las ventanas y los programas. Sin mis programas tampoco se trabajar.

  • Yo tambien abuso de usar la variable $x en ciclos de PHP y la variable i en Java.

    Tambien detesto ver código sin espacios entre variables y operadores o parentesis..

    if(muestra==getMuestra(id,algo)&&valor!=0)

    Me agarra un desespero y tengo que separar todo (cuando no es codigo mio).

    Tambien nombro funciones y variables en ingles siempre, me parece que se ve mas bonito.

  • Las manías que me llevan mas tiempo preparar pero que me hacen ganar tiempo a la larga: customizar los shortcuts de teclado para todos los programas! escencial: intento poder acceder a todo con la mano izquierda y con el meñique en la tecla Ctrl… lo cual obliga a ser un poco ingenioso. diooos no soporto ver a la gente con esa mano al pedo como si fueran mancos, que falta de profesionalismo. La barra de menús debería ocultarse por defecto a los 30 dias de usar un programa.. jajaja.
    Mas manías: Hacer un “format c:” (qué antiguo sonó eso) por lo menos una vez al año y dejar el sistema livianito y limpio, soy de los que prueban todo programa que anda por ahí y mi querido WindosXPpro termina hecho una mierda. Me lleva tres días dejar todo como a mí me gusta. En cuanto a las ventanas… dios, utilizo dos monitores, en uno el programa principal y en el otro las barras de erramientas e inspectores. Lleva tiempo educar al programa pero es muy cómodo. La barra de tareas de Windows siempre en vertical, bien ancha, a la izquierda, nada de “siempre visible” y que se oculte automáticamente.
    En programación: Tiendo a escribir todo en inglés menos comentarios largos aunque en variables mezclo bastante; usar la palabra “my” delante de nombre de variables de objeto: myArray, myForm. La indentación del código es escencial. Separo los bloques mas importantes del código con lineas así “//———————————” y quizás la peor de mis manías: no haber mudado a PHP y seguir desarrollando en ASP, eso sí, con JAvaScript como lenguaje de servidor (muerte a VBScript!).

    Para los que no se hayan comprado aún su segundo monitor les dejo unas capturas de pantalla (en el link del pie de este post) de varios programas y verán lo que es comodidad, asique… ya saben… vayan ahorrando unos eurillos que no entenderán como han podido trabajar con un solo monitor todo este tiempo (nuestro mejor amigo será el programa UltraMon para gestión de varios monitores).

  • Para los que programen Java usando eclipse, este tiene una opción para formatear el código que te coloca cada cosa en su sitio, te lo identa, te pone las llaves, etc…
    Además es configurable. Una cosa si es importante para la legibilidad del código, y es no poner nunca un if, for, … sin sus llaves correspondientes aunque la condición tenga una sola línea. Otra manía que tengo es no hacer barbaridades del tipo:

    for(i=0;i)};

    En la facultad nos enseñaron a usarlos para recorrer matrices. Desde luego el que lo dijo no era programador.

  • Vaya el bucle salió mal en el comentario. La cosa es poner en la parte en la que se suele poner el incremento de la variable del for una sentencia, incluso en fortran podemos poner un nuevo bucle y después la sentencia. Esto se usa para recorrer matrices, pero como digo es una auténtica barbaridad.

  • Yo cojí manía a declarar variables tipo entero llamandolas “i”. Cuando aprendí C siempre era la letra i como tipo int (integer/entero), y me quedé con ese vicio.

  • Yo odio ver las llaves como os gusta a la mayoría, es decir:

    if () {

    }

    Si el código es largo y no tengo tiempo de cambiarlo, me paso un buen rato buscando las llaves de apertura porque las busco donde deberían estar, es decir, en el mismo sitio que las de cierre.

    Me gusta poner las llaves siempre en la siguiente línea porque de un solo vistazo hacia arriba ves la de apertura que está en el mismo sitio y en una línea sola.

    if ()
    {

    }

    No me gusta compactar varias líneas en una sola. El operador ternario lo uso muy poco.

    Para mí, los nombres de las funciones y variables siempre en español.

    Eso sí, tengo la manía de no poner llaves en los ifs que solo tienen una sentencia.

    if (valor)
    HazAlgo();

    Comprendo que eso es un problema para el que lo lea, pero yo lo veo más claro jeje.

    Otra cosa que suelo hacer es no usar signo de subrayado para separar palabras. En lugar de eso, uso mayúsculas para separar las palabras. Por ejemplo:

    ObtenerValor();
    DibujarTabla();
    HacerAlgo();

    Y eso que dijo #7 de no saber en qué forma poner los verbos, yo lo arreglo fácil. Yo todos van en infinitivo, como podéis ver arriba. Las veces que no lo he puesto así, me he hecho un lío luego al usarla.

    Buen post y muy didácticos los comentarios ;)

  • Como diseñador/maquetador también tengo lo mio. Sobre todo con el orden y nombre de capas en Photoshop y la indentación y orden de las propiedades en los identificadores y clases de la CSS. Rozo lo enfermizo. Pero trabajo feliz a mi manera. Bonito es comprobar que no estamos solos en nuestra locura y frikez :)

  • Creo que todos tuvimos el mismo problema (¿es problema o una buena práctica?) con la indentación. Por lo menos en PHP, Java y Javascript.

    Cuanto a los nombres de variables, funciones y otros creo que soy como ustedes, pero hay unas otras curiosidades:
    Hace unos años yo era favorable de programar en mi idioma, pero ahora tengo casi todas mis librerías de PHP y Javascript en inglés (creo que sea por los mismos motivos de Alex #7), con excepción de algunas variables que están en portugués (que es mi lengua).
    Además de las librerías, tengo mis HTMLs y CSSs que son mitad en inglés y la otra mitad en portugués.
    Y los códigos de la parte de negocio, en PHP son en portugués y en Javascript son en inglés.

    Hay otras dos cosas curiosas: las palabras claves en SQL siempre pongo en mayúsculas y separo mis scripts en bloques (bloques de asignación, bloques de consultas, bloques de formatación).

    Otras dos curiosidades extras son: programo en PHP con las buenas prácticas de Java y el tamaño del TAB de mi indentación son de dos espacios.

    A mi no me gustan las variables cortas, mismo que yo empiece a programar con estas, yo no termino un proyecto sin antes darles sus nombres más adecuados.

    Yo condenso el código solamente cuando es necesario.

  • Para los amantes de la llave solitaria.

    De todas formas no hay un estandar definido que nos indique como tenemos que hacer las cosas, por ese motivo cada uno hace lo que le és más cómodo.

    Saludos

  • Buen post jeje.

    Lo de la indentación es una buena práctica, te permite ver con mayor facilidad qué procesos quedan dentro. Lo que no me gusta es poner la llave que abre, en la misma línea que el encabezado de ese grupo.

    Siempre pongo nombres bilingües a las funciones, porque se me hacen más cortas. Además de nombrarlas como los métodos en la POO, por ejemplo “getAnchoImg()”.

    No me gusta tener muchos archivos. Desarrollo sobre PHP y mejor abuso del “switch” para que un sólo archivo PHP haga varias funciones.

    La hoja de estilos principal SIEMPRE se tiene que llamar “paxstyle.css” :D cuestión más de ego que de vicio, supongo.

    Para consultas de MySQL, siempre llamo $link a la sesión de la BD y $res al resultado que viene del mysql_query. Si hay varias consultas, serán $res2, $res3, … etc.

    En los ciclos, siempre uso $x. Para cadenas siempre se llaman $cad.

    Abuso del operador ternario.

    Siempre debe de haber un renglón en blanco entre funciones.

    El color de fondo de donde programo (gEdit ahora, antes en EditPlus) debe ser negro, además de que la fuente sea Times New Roman, a menos que importe mucho el tamaño de los caracteres, ahí le cambio o una Monospaced.

    Siempre habrá un DIV llamado “#contenedor” en mis páginas.

    Si hay que generar usuarios, en las pruebas se llaman “Dios” y “equis”.

    Creo que tengo más manías, pero mejor hago un post yo jejeje.

    Excelente blog. Lo leo esporádicamente, pero leo desde donde me quedé la última vez. :D

    Un saludo.

  • Tengo la incansable constumbre de impedir el uso de else lo mas posibnle :P y la negacion, ademas de independizar y modular el codigo lo mas posible, es raro ver funciones de mas de 50 lineas en mis programas :P.

    ejemplo:

    if(ValidateDirectory( Dir ))
    {
    …..
    } else
    printf(“Error validando directorio\n”);

    lo suelo cambiar por

    if(!ValidateDirectory( Dir )) {
    printf(“Error validando directorio\n);
    return -1;
    }
    ….

  • Aparte de algunas ya comentadas, en los bucles etc.. sobre todo de arrays suelo usar $k y $v para key y value … , $i para contar

    tambien usar prefijos en vairables.

    Tambien tengo la manía de alinear con tabs listas de fariables o elementos de tal forma

    $prf_user_id = ‘ej21′;
    $prf_user_login = ‘pepiteo';
    $prf_user_pass = ‘123456’;

  • Bueno no se puede mostrar en los comentarios la idea es que los “iguales” queden separados y alineados de arriba abajo

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.