Home

misManias.php PDF Imprimir E-mail
Escrito por manycomics   
Domingo, 04 de Enero de 2009 22:18

Matrícula PHPVamos con una de codificación en PHP para empezar el año.

Con el paso del tiempo, sea cual sea el lenguaje que se utilice en la fase de codificación, el desarrollador va adquiriendo ciertas costumbres en la forma de implementar su código; en unos casos estas desembocan en un código claro, legible y fácil de mantener, y, en otros, en fuentes dignos del mejor ofuscador.

Llegada esta fase del desarrollo, cada uno suele tener "sus manías" personales. Comentaré aquí algunas de las mías, aplicadas a PHP, con las que intento que mi código resulte "mantenible" en la medida de lo posible. Se trata de facilitarse la labor a uno mismo si se es la única persona que mantiene su propio código (p.ej., en mi caso, el de manycomics.com), pero también de no complicar la vida a los demás cuando se trabaja en equipo (quien se enfrente a tener que realizar modificaciones en tu código te lo agradecerá).

Parto de la base de que no hablamos de código PHP embebido en HTML, pese a que mucha gente asocia este lenguaje con una forma de desarrollo monolítica (la idea de codebehind no es original y exclusiva de ASP.NET, y PHP no es incompatible con una arquitectura que siga un modelo en capas, es más, el planteamiento normal debería ser en capas).

Vamos pues con lo que afecta a lo que queda bajo el interfaz HTML:

1. Notación

Sin llegar a utilizar notación húngara, con el tiempo sí he ido adoptando ciertos prefijos, principalmente en variables, parámetros y en determinados nombres de funciones.

A simple vista, si nada más abrir un fichero que no tocamos hace meses aparece una variable $poblacion, posiblemente haya que tirar algo del hilo para ver si tendrá asignado el valor 25000 (habitantes), "Roma" o "new Poblacion();".

En este caso, a primera vista, entiendo $poblacion como una instancia (notacionCamel: instancias, variables, ...) de la clase Poblacion (NotacionPascal: clases). Si se trata de valores numéricos añado como prefijo "n", y si es una cadena de caracteres añado "str", por ejemplo:

    $poblacion = new Poblacion();
    $nPoblacion = 25000;
    $strPoblacion = "Roma";



Así, para mí, prefijos como "str", "n", "arr" o "html" significan respectivamente string, numérico, array o texto HTML: $strLoQuSea, $nLoQuSea, $arrLoQueSea, $htmlLoQueSea. P.ej.:

    $htmlAutor = htmlentities("$strNombre $strApellidos");

De igual manera, añado el prefijo "html" a aquellas funciones que van a generar o modificar código HTML: htmlCombo(...), htmlCabecera(...), ...

Otra costumbre, esta ya independiente de mi pseudo-notación húngara, es la de utilizar mayúsculas para las constantes:

    define("MAGICQUOTES", get_magic_quotes_gpc());



(algo que, por otra parte, también acostumbro a hacer en el código SQL con las palabras reservadas).

2. Echo único: Generando el interfaz.

Otra de mis costumbres es evitar ir mostrando trozos de HTML, es decir, si hay que hacer un "echo" este es único y se hace al final. La idea pasa por ir componiendo en una variable (p.ej. $html) la página a mostrar, y una vez completada mostrarla ("echo"). P.ej., algo similar a este pseudocódigo:

    <?php
    require_once($_SERVER['DOCUMENT_ROOT']."/lib/libreria.plib.php");
 
    function htmlPagina(&amp;$html) { // $html vendría a ser un parámetro out
        ...
        for ($k=0; $k<10; $k++) {
            $htmlItem = ...;
            $htmlCuerpo.=$htmlItem;
        }
        ...
        $html = "$htmlCabecera $htmlCuerpo $htmlPie";
        ...
        return 1;
    } 
 
    // main ------
    if (htmlPagina($html)) echo $html; else header("Location: /error/");
    ?>



3. Tipos: PHP traga todo tipo de asignaciones.

Las variables, los parámetros... de un tipo concreto ("" no es lo mismo que 0).

PHP permite cosas como esto:

    $x=7;
    $x++;
    $x="texto";
    $x.=" de prueba";



Es decir, a una variable le asignamos un entero y poco después le asignamos un string; o también que las funciones devuelvan valores de tipos diferentes según la ocasión:

    function dameAlgo($cuanto) {
        if ($cuanto>0)
            return $cuanto; // p.ej.un número: 7
        else
            return "No te doy nada"; // un string
    }



Vale, el lenguaje lo permite, pero yo no me lo permito. Cada variable debería admitir solo valores de un único tipo, y cada función debería devolver siempre valores de un mismo tipo.

Otra "manía" sobre las funciones: Intento que normalmente devuelvan un valor que, llegado el caso, sirva para identificar si todo ha ido bien (1 ó 0, dependiendo de éxito o error).

4. Extensiones.

Finalmente una manía más, ya independiente del código. No es la panacea para evitar la posible descarga de librerías con el navegador, pero a pesar de todo intento que su extensión sea .php en vez de .plib, .inc, etc.

Y hay más, pero sirvan todas estas "manías" a modo de muestra.

Última actualización el Domingo, 13 de Mayo de 2012 18:38
 
Licencia Creative Commons   Los contenidos de ManyComics se encuentran bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported, salvo que se indique lo contrario.

ManyComics.com usa cookies para mejorar el sitio web y tu experiencia al usarlo. Al navegar por esta página, aceptas el uso de cookies.

Acepto las cookies de este site.