viernes, agosto 07, 2009

Programacion - Buenas Practicas - Nombres

Bien, vi por ahí un comentario sobre términos en ingles. La verdad es que a mi también se me dá mucho lo de poner los términos en ingles. En cuanto al idioma a utilizar, tanto en el código, como en los modelos, es mi opinión que principalmente debemos tener en cuenta el publico al que va dirigido. Es decir que si mi equipo de desarrollo esta compuesto básicamente por personas que hablan español debemos proponernos utilizar nombres o notaciones en español, ya que algunos podran hablar ingles, pero la mayoria hablara español, se entiende?. El utilizar el ingles, tiene su razón cuando el cliente es de habla inglesa y nuestro código es de su propiedad (tercerización), o los "stakeholders" (no tiene una traducción directa al español, pero es algo así como los interesados, gente que pone la plata, etc) son de habla inglesa.
En cuanto al código, algunas buenas practicas no dicen nada del lenguaje pero sugieren (En lo que recuerdo.no?) para:

-Constantes: nombres descriptivos, completamente escritos en mayúsculas remplazando los espacios es blanco con guiones bajos.

- Variables: nombres descriptivos de la misma. En java, se utiliza la notación "camelCase" donde se escribe todo junto y cada palabra comienza con una mayúscula menos la primera. Y no se suelen utilizar prefijos. En el caso de php se utiliza las notación que incluye guiones bajos (no recuerdo bien el nombre, es un poquito complicado). Ejem nombre_variable. Además de ello, y a diferencia de java, se suelen utilizar prefijos. Por ejem: obj_nombre_variable para hacer referencia a que la varible es un objeto.

-Metodos: similares a las variables, pero no se utilizan prefijos tanto para php como para java. su nombre se forma con la estructura verbo + objeto. Ejemplo publicarNoticia (java) o publicar_noticia (php). A excepcion de los metodos de acceso a los atributos o propiedades que si o si deben tener la estructura getPropiedad(), setPropiedad(TipoPropiedad propiedad), isPropiedad().

- Clases: Nombres camelCase en singular y que comiencen en mayuscula, para java y PHP5, C++, etc. En php4- se pueden escribir con minúscula.

-Interfaces: los nombres se deben escribir camelCase con la primera palabra en mayúscula y ser adjetivos (PHP5,java). Por ejemplo, publicable, votable, etc.

-Paquetes: (php5, java). Los nombres se escriben en minúscula separando las palabras por puntos. y su estructura es de la forma siguiente: dominio.alreves.[empresa/equipo/proyecto].nombrepaquete. Por ejemplo Si es para el sitio www.mipagina.com y trabajamos en la empresa arosoft podría ser com.mipagina.arosoft.utilidades

Por ultimo Los nombres, según la capa de arquitectura en la cual se ubique, es otro tema, a desarrollar después. Pero podría adelantar que si es una clase que formará parte de una capa de servicios en un presenter de un MVP o algo asi, es decir una capa intermedia en la codificación, podría tener por nombre un gerundio. Por ejemplo: Publicando y cada metodo que implemente un caso de uso tener el mismo nombre que en la ficha de caso de uso escrito en camelCase, para facilitar el seguimiento y las pruebas funcionales del mismo.


Saludos, nuevamente espero que despierte algunas ideas.

Una guerra que está cambiando su rumbo

Por fin esta guerra que comenzó en tiempos mas allá de mi conciencia parecería tornar su rumbo. Por primera vez en la vida, creo que la universidad no la ganará. Pájaros negros circundan sus posibilidades.
Que aquello que empecé cuando todavía mi cara angulaba, está llegando a su fin. Ya no se trata de los deseos de realización de una madre, ni el alma penante de un padre que vela por la felicidad y el futuro de su hijo. No se trata de una promesa. No se trata del respeto que infunde la palabra que precederá a mi nombre, ni de un papel impreso con un cero de más. No se trata de las presiones que abuelos, familiares, amigos, allegados, etc, ejercen sobre mi persona al rededor de una mesa.
Se trata de una guerra que ni el mismisimo Pirro hubiera estado dispuesto a librar. A donde quedaron en el camino, un gran afecto, un hijo no nacido, un padre no acompañado, un sueño no cumplido, una carrera abandonada. Soldados que se contaron como lágrimas, sueños, noches en vela, compañeros de camino; han quedado a trás por sostener una bandera.

Pero la guerra está llegando a su fin! Está cambiando su rumbo.

Solo resta la madre de todas las batallas, aquella que definiría todo. El todo o la nada. Y estoy más preparado que nunca, la experiencia me ha nutrido, he bebido de sus tetas hasta quedar rechoncho, mi armadura brilla tanto bajo el sol como bajo la luna, mi espada corta y bloquea por igual y mi caballo atraviesa tempestades.
Que te queda a ti?
Solo tus harapos teñidos de vergüenzas, tus magulladuras, tus puños que tantas veces supieron rechinar contra mis huesos, que quebraron mi intestino, hoy hacen huellas en el suelo junto a tus rodillas. Te has quedado sola en tu castillo, pues uno a uno tus ejércitos han caído.
Si he de festejar el dia que sucumbas?
No, amiga mia, no, enemiga mia. Te guardo el derecho al respeto. Ese respeto que se guarda a aquellas cosas que esculpen tu alma a base de la educación más espartana y sádica. Pero la vida se encargo de que ambos ocupásemos dos bandos diferentes en este desierto donde no hay nada que ganar y mucho he perdido. No será la montaña lo que ha de pagar, será la lucha por ella . Con el tiempo y solo con el tiempo, beberé en tu nombre, reiré con nostalgia de las grandes batallas y recordaré sacrificios. Pero tu día, será un día más en mi vida, y ese ha sido tu mérito.
Puedes sonreír, pero la irónica se transformará en sordónica, pues tu era ha terminado y ahora comienza la mía.