Buenas practicas y estándares

Tener buenas practicas a la hora de programar nos puede evitar muchos dolores de cabeza, la mayoría de los programadores se enfocan en el código, no en el formato del mismo, yo creo que esto podría ser un error, mejorar nuestras practicas de programación puede traernos muchos beneficios, generamos código mas consistente, mejoramos la lectura del mismo y facilitamos la colaboración con otros programadores. Una de las mejores maneras de lograr esto, es mediante el uso de estandartes, ya existen muchos, adopten alguno, dentro del documento “Best Practices of PHP Development”de Zend, ellos nos dan un gran tip:

“Don’t invent your own standard. You are not special and your source code is not unique.”

Ademas, el uso de estandares establecidos nos permitira ser mas objetivos a la hora de revisar código de otros, nos ayudara a mejorar la reusabilidad de nuestro código y tendremos código compatible con otros proyectos.

Dentro de PHP, los estándares mas difundidos son:

De cualquier forma aquí les dejo yo mis recomendaciones, los estándares de codificación que yo uso en muchos de mis proyectos, ojala les sirvan:

Convenciones de nombres…


  • Clases – Los nombres de las clases deben ser CamelCase, con la inicial en mayúscula. Es una buena practica usar el “estilo PEAR” para manejar la jerarquía de nuestras clases, esto también ayuda a ubicar los archivos de forma jerárquica y ordenada.
  • Archivos – Solo caracteres alfanuméricos, comenzando en mayúscula, los espacios no están permitidos.
  • Variables, propiedades, funciones y métodos – Estos nombres deberán ser camelCase, con la inicial en minúscula.
  • Los métodos llamados “Accessors” utilizaran los prefijos set y get, usando la regla anterior, por ejemplo setVar1 y getVar1.
  • Constantes – Las constantes de código (por ejemplo los generados con #define de C/C++ o define() de PHP deberán estar en MAYUSCULAS.
  • Propiedades y métodos privados – Los elementos privados usaran un “guion bajo” al inicio, por ejemplo _nombreVar.

Convenciones de llaves…

  • Las funciones y clases deberán tener su llave inicial en la siguiente linea a la declaración y en el mismo nivel de indentación.
  • Las estructuras de control siguen la regla anterior, algunas personas recomiendan poner la llave inicial en la misma linea de la estructura, es cuestión de gustos…
  • Se recomienda que todas las estructuras de control usen llaves, nada de sentencias inline, yo no sigo mucho esta regla, aunque puede ser recomendable…

Indentación…


  • Se recomienda usar solamente espacios no tabs, 4 espacios por nivel de indentación, la mayoría de los editores pueden ser configurados para que conviertan nuestros tabs en espacios ayudándonos a cumplir este requisito.

Valores boleanos y null


  • En los lenguajes donde sea indiferente el usar “null”, “false” y “true” con mayúsculas o minúsculas, siempre serán usados en minúsculas.

Metodos y funciones


  • Cuando el parámetro de un metodo sea opcional, y no se tenga preferencia sobre algun valor default se debe usar “null” en lugar de “false”.
  • Los parámetros deberán estar separados por un espacio en blanco después de cada coma.

Programación orientada a objetos…


  • Una sola clase por archivo, y nada de código fuera del contexto de la clase.
  • Siempre que se declaren métodos o atributos de una clase, se debe especificar explícitamente el nivel de visibilidad que tienen, generalmente se maneja public, private y protected.
  • Usen namespaces para agrupar sus clases y evitar colisión de nombres.

Comentarios…


  • Trata de comentar tu código, de preferencia usa un formato estándar como el de JavaDoc o PHPDoc, existen muchas aplicaciones que pueden hacer uso del mismo.
  • Comenta las partes de tu código que sean relevantes, evitar poner antes de tu ciclo: “Recorro el arreglo…”, los comentarios son de gran ayuda pero podrían llegar a estorbar si no se usan bien, algunos excelentes ejemplos de lo que no se debe hacer los encuentran aquí.

Bases de datos…


  • Utilizar caracteres alfanuméricos
  • Limitar los nombres a menos de 64 caracteres (es una restricción de MySQL).
  • Utilizar el guión bajo (_) para separar palabras.
  • Utilizar palabras en minúsculas, algunos motores te lo convierten automáticamente.
  • Los nombres de las tablas deberían ir en plural y los nombres de las columnas en singular.
  • En una tabla, colocar primero la clave primaria seguida de las claves foráneas.

Otros…


  • Trate de mantener las lineas con 75-85 caracteres máximo.
  • Use alguna aplicación para la administración de proyectos como Jira, Trac o PHProjekt
  • Use alguna aplicación para el seguimiento de errores como Mantis o Bugzilla
  • Genere pruebas para su código, los llamados paquetes Unit (PHPUnit) pueden ser de gran ayuda
  • Cuando realices un commit a tus repositorios, pon comentarios que realmente ayuden, http://www.commitlogsfromlastnight.com/

PHP…


  • Utilice solamente los tags estándar <?php … ?>, evite usar los tags cortos <? … ?>, debido a el uso masivo de XML estos han quedado fuera de uso, los tags cortos son similares a los encabezados de los XML.
  • En archivos que contengan únicamente código PHP, el tag de cierre (?>) debe ser omitido, este no es requerido por PHP y el omitirlo previene de tener salidas inesperadas si es que se nos pasa un espacio en blanco o algo después del tag de cierre.
  • Las constantes deben definirse cuando son relativas a una clase con “const”, cuando son valores generales o de configuración usa “define”.

Referencias…


Un comentario en “Buenas practicas y estándares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *