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.

No hay comentarios.: