Utilizar siempre el tag de apertura completo (<?php) y nunca la versin corta
(<?). Tambin es recomendable utilizar el constructor del lenguaje echo y no su versin abreviada (<?= ?>). Esto nos ahorrar futuros errores si en la configuracin del intrprete PHP en el servidor est deshabilitada la variable short_open_tag. El uso del tag de cierre php (?>) en un documento PHP es opcional para el intrprete de PHP. Sin embargo, si se utiliza, cualquier espacio en blanco introducido a continuacin del tag de cierre de php, ya sea por el desarrollador, el cliente FTP, administrador de sistemas, etc, puede provocar una salida inesperada, errores PHP, o incluso si ste es ignorado por el servidor, una pgina en blanco. Por esta razn, todos los archivos PHP que nicamente contienen cdigo PHP deben omitir el tag de cierre php y en su lugar utilizar un comentario de bloque indicando que se ha llegado al final del archivo y, si se quiere, su ubicacin en el sistema de ficheros relativa a la raz de la aplicacin. Este comentario tambin permite sealar un archivo como completo y que no est truncado. Correcto <?php echo "Here is my code!"; /* End of file myfile.php */ /* Location: /path/to/myfile.php */ Incorrecto <?= "Here's my code!"; ?> Globales, Constantes y Defines Para nombrar constantes, valores globales y valores definidos mediante la estructura define, han de utilizarse nombres con todas las letras en maysculas, separados por guiones bajos si contienen ms de una palabra y procurar que sean nombres descriptivos y con sentido, facilitando as su lectura en el futuro, tanto para el propio desarrollador como para otros desarrolladores. MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 Correcto MI_CONSTANTE define('VALOR_FIJO',1); Incorrecto miConstante // Evitemos utilizar camelCase N // Constantes de una sola letra no nos dicen nada S_C_VER // Este nombre no es descriptivo Nombres de clases y mtodos Los nombres de clases han de comenzar siempre con una letra en maysculas. Los nombres con varias palabras han de separarse con guin bajo y no utilizar el estilo camelCase. Los nombres de los mtodos de la clase han de escribirse siempre en minsculas y procurar ser autodescriptivos, es decir, dejar bastante claro cul es la funcionalidad del mtodo, preferiblemente incluyendo un verbo. Por supuesto, los nombres de mtodos de clase tambin han de utilizar guiones bajos para separar las palabras que lo componen. Hemos de evitar utilizar nombres de mtodos excesivamente largos o con palabras redundantes. Los nombres de mtodos que nicamente son accedidos internamente por nuestra clase (mtodos privados) deben ir precedidos por un guin bajo. Los constructores de clase han de utilizar el estilo PHP5 (public function __constructor()) y no utilizar el estilo de PHP4, es decir, utilizar el nombre de la clase como constructor. Hemos de utilizar destructores de clase cuando sea apropiado. Se recomienda declarar explcitamente la visibilidad de variables miembro de clase as como de los mtodos. MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 ESTILO DE PROGRAMACIN PYTHON Cdigo lay-out Sangra Utilice 4 espacios por nivel de sangra. Las lneas de continuacin deben alinear los elementos envueltos en forma vertical utilizando la lnea implcita de Python incorporarse dentro de los parntesis, corchetes y llaves, o el uso de una sangra francesa. Cuando se utiliza una sangra de las siguientes consideraciones deben aplicarse, no debe haber ningn argumento en la primera lnea y ms sangra se debe utilizar para distinguir claramente como una lnea de continuacin. S: # Alineado con la apertura delimitador foo = long_function_name (var_one, var_two, var_three, var_four) # Ms sangra incluye para distinguirlo de los dems. def long_function_name ( var_one, var_two, var_three, var_four): print (var_one) N : # Argumentos en primera lnea prohibida cuando no utilice la alineacin vertical foo = long_function_name (var_one, var_two, var_three, var_four) # Ms indentacin requerido como indentacin no es distinguible def long_function_name ( var_one, var_two, var_three, var_four): print (var_one) MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 Opcional: Sangra # extra no es necesaria. foo = long_function_name ( var_one, var_two, var_three, var_four) El cierre cors / soporte / parntesis sobre construcciones de varias lneas o bien puede alinearse bajo el primer carcter distinto de espacio en blanco de la ltima lnea de la lista, como en: my_list = [ 1, 2, 3, 4, 5, 6, ] resultado some_function_that_takes_arguments = ( 'A', 'b', 'c', 'D', 'e', 'f', ) o puede ser alineado en el primer carcter de la lnea que comienza la construccin de varias lneas, como en: my_list = [ 1, 2, 3, 4, 5, 6, ] resultado some_function_that_takes_arguments = ( 'A', 'b', 'c', 'D', 'e', 'f', ) Tabs o espacios? Los espacios son el mtodo preferido sangra. Tabs deben utilizarse exclusivamente para mantener la coherencia con el cdigo que ya est recortada por pestaas. Python 3 no permite mezclar el uso de tabuladores y espacios para el sangrado. MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 Cdigo Python 2 sangra con una mezcla de tabuladores y espacios se debe convertir a la utilizacin de espacios en exclusiva. Cuando se invoca el comando 2 intrprete de lnea de Python con el t- opcin, emite advertencias sobre cdigo que mezcla ilegalmente tabulaciones y espacios. Cuando se utiliza -tt estas advertencias se hacen errores. Estas opciones son muy recomendables! Longitud mxima de lnea Limite todas las lneas hasta un mximo de 79 caracteres. Para que fluye largos bloques de texto con menos restricciones estructurales (docstrings o comentarios), la longitud de lnea debe limitarse a 72 caracteres. Limitar el ancho de la ventana editor requerido hace que sea posible tener varios archivos abiertos de lado a lado, y funciona bien cuando se utilizan herramientas de revisin de cdigo que se presentan las dos versiones en columnas adyacentes. La envoltura de forma predeterminada en la mayora de las herramientas interrumpe la estructura visual del cdigo, por lo que es ms difcil de entender. Los lmites se eligen para evitar envolver en los editores con la anchura de la ventana establecido en 80, incluso si la herramienta coloca un marcador de glifo en la columna final cuando se envuelve lneas. Algunas de las herramientas basadas en web pueden no ofrecer el ajuste de lnea dinmico en absoluto. Algunos equipos prefieren fuertemente una mayor longitud de lnea. Para el cdigo mantiene exclusivamente o principalmente por un equipo que puede llegar a un acuerdo sobre esta cuestin, que est bien para aumentar la longitud de la lnea nominal de 80 a 100 caracteres (el aumento efectivo de la longitud mxima de 99 caracteres), a condicin de que los comentarios y las cadenas de documentacin an estn envueltos a 72 caracteres. La biblioteca estndar de Python es conservador y requiere limitar las lneas de 79 caracteres (y docstrings / comentarios a 72). MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 La mejor forma de ajustar lneas largas es el uso de continuacin de lnea implcita de Python dentro de parntesis, corchetes y llaves. Largas filas se pueden dividir en varias lneas envolviendo las expresiones entre parntesis. Estos deben utilizarse en lugar de utilizar una barra invertida como continuacin de lnea. Las barras invertidas todava pueden ser apropiados en algunas ocasiones. Por ejemplo, mucho, mltiples con -declaraciones no puede utilizar la continuacin implcita, por lo que las barras invertidas son aceptables: con open ('/ ruta / a / un / archivo / que / quiera / a / leer') como file_1, \ open ('/ ruta / a / un / archivo / de ser / escrito', 'w') como file_2: file_2.write (file_1.read ()) Otro de estos casos es el de afirmar declaraciones. Asegrese de guin de la lnea continua adecuada. El lugar preferido para romper en torno a un operador binario es despus de que el operador, no antes. Algunos ejemplos: clase Rectangle (Blob): def __ init__ (self, anchura, altura, color = "negro", el nfasis = Ninguno, highlight = 0): if (anchura y altura == 0 == 0 y Color == 'red' y el nfasis == 'fuerte' o resaltar> 100): raise ValueError ("lo siento, usted pierde") si el ancho y la altura == 0 == 0 y (color == 'red' o nfasis es None): raise ValueError ("Yo no lo creo - Los valores son% s,% s"% (Ancho, alto)) Blob.__init__ (self, anchura, altura, color, nfasis, resalte) Lneas en blanco Funcin de nivel superior separada y definiciones de clases con dos lneas en blanco. Definiciones de mtodos dentro de una clase estn separados por una lnea en blanco. MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 ESTILO DE PROGRAMACIN EN JAVA Formato de lneas 1. No usar ms de 80 caracteres por lnea (imagen de tarjeta). De esta forma se pueden visualizar las lneas completas con un editor de texto o en una hoja impresa tamao DIN A4. 2. Cuando la lnea sea mayor de 80 caracteres, divdala en varias partes, cada una sobre una lnea. Salte de lnea al final de una coma o al final de un operador. Si se trata de una expresin con parntesis salte, si es posible, a lnea nueva despus de finalizar el parntesis. Por ejemplo, casos vlidos seran, public void metodoHaceAlgo(int valor1, double valor2, int valor3){ resultado = aux* (final-inicial+desplazamiento) + referencia; 3. Use lneas en blanco como elemento de separacin entre bloques de cdigo conceptualmente diferentes. 4. Sangre adecuadamente cada nuevo bloque de sentencias. Entre dos y cuatro espacios en blanco son suficientes para cada nivel de sangrado. De esta forma se aprecia visualmente la diferencia de nivel entre bloques de sentencias, sin rebasar, normalmente, los 80 caracteres por lnea. A la hora de sangrar, y para evitar problemas de compatibilidad entre editores de texto, use espacios y no tabuladores. Por ejemplo, public double calcularDescuento (double total) { int aux=0; // Se sangra dos espacios 5. if (total>LIMITE) { total = total * 0.9; // Se sangra otros dos espacios } return total; } Ficheros 1. Incluya una sola clase o interfaz por fichero, o al menos una sola clase o interfaz pblica. 2. Si hay comentarios globales para los contenidos del fichero colquelos en primer lugar. 3. Si la clase forma parte de un paquete, la sentencia package deber ser la primera del fichero. 4. Si se importan paquetes, la sentencia import debe aparecer despus de la sentencia package. 5. Coloque la declaracin de las clases o interfaces a continuacin de la sentencia package. MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1 Clases 1. Coloque en primer lugar los comentarios sobre la clase (vea el apartado comentarios). 2. Coloque los atributos (datos) a continuacin. Coloque primero las variables estticas y a continuacin las variables de ejemplar en el orden: pblico (se recomienda no incluir variables pblicas), protegidas y privadas, es decir, public, protected y private en Java. 3. A continuacin se declaran los mtodos, con los constructores en primer lugar. El resto de mtodos se colocar en orden de interrelacin y no por visibilidad. As, si un mtodo pblico usa dos mtodos privados, se debera colocar primero el pblico seguido de los dos privados. La idea es que al leer el cdigo se siga con facilidad la funcionalidad de los mtodos. Las recomendaciones de los dos ltimos puntos se resumiran de la forma siguiente, class NombreClase { variables estticas variables de ejemplar pblicas (debe evitarse su uso) variables de ejemplar protegidas variables de ejemplar privadas mtodos constructores resto de mtodos 4. } 5. 6. No deje espacio en blanco entre el identificador del mtodo y los parntesis, es decir, escriba, public void nombreMtodo(int valor1, double valor2) en lugar de, public void nombreMtodo (int valor1, double valor2) obsrvese el espacio en blanco delante de la apertura de parntesis. Visibilidad de miembros de clase 1. Los atributos (datos) deben declararse privados (private) excepto los que se pretenda que sean accesibles por herencia que deben ser protegidos (protected). Se debe evitar el uso de datos pblicos. 2. Los procedimientos (mtodos) de la interfaz pblica deben declararse public, los de soporte privados (private). MUJICA VIVEROS EMMANUEL PROG.LOGICA Y FUNCIONAL TAREA: 1