lunes, 10 de febrero de 2014

1.1. Estilos de programación en distintos lenguajes de programación.

Estilo de programación (también llamado estándares de código o convención de código) es un término que describe convenciones para escribir código fuente en ciertos lenguajes de programación.
FORTRAN
Hay muchos estilos diferentes de programación, pero se intentará dar algunas guías generales que son de aceptación general.
Portabilidad
Para asegurar la portabilidad del código, se recomienda usar sólo el estándar de Fortran 77. La única excepción que se ha hecho en este manual es usar letras minúsculas.
Estructura del Programa
La estructura total del programa deberá ser modular. Cada subprograma deberá resolver una tarea bien definida. Mucha gente prefiere escribir cada subprograma en un archivo por separado.
Comentarios
Se repite lo que se había indicado previamente: Escriba código legible, pero también agregue comentarios al código fuente para explicar lo que se está haciendo. Es especialmente importante tener una buena cabecera para cada subprograma que explique cada argumento de entrada/salida y que hace el subprograma.
Sangrado
Se debe siempre usar el sangrado apropiado para bloques de ciclos y sentencias if como se mostro en el tutorial.
Variables
Declarar siempre todas las variables. No se recomienda la declaración implícita. Intentar compactar a 6 caracteres como máximo para nombres de variables, o asegurarse que los primeros 6 caracteres son únicos.
Subprogramas
Nunca se debe permitir que las funciones tengan "efectos laterales", por ejemplo no se deben cambiar los valores de los parámetros de entrada. Usar subrutinas en tales casos.
En las declaraciones separar los parámetros, bloques comunes y variables locales.
Minimizar el uso de bloques comunes.
Goto
Minimizar el uso de la sentencia goto. Desafortunadamente se requiere usar goto en algunos ciclos, ya que el ciclo while no es estándar en Fortran.
Arreglos

En muchos casos es mejor declarar todos los arreglos grandes en el programa principal y entonces pasarlos como argumentos a las distintas subrutinas. De esta forma toda la asignación de espacio es hecha en un sólo lugar. Recordar que se deben pasar también las dimensiones principales. Evitar el innecesario "redimensionamiento de matrices".
Asuntos de Eficiencia
Cuando se tenga un ciclo doble que esta accediendo a un arreglo bidimensional, es usualmente mejor tener el primer índice (renglón) dentro del arreglo más interno. Lo anterior por el esquema de almacenamiento en Fortran.
Cuando se tengan sentencias if-then-elseif con condiciones múltiples, intentar colocar primero aquellas condiciones que vayan a ser las más frecuentes que ocurran.

C
No existen un conjunto de reglas fijas para programar con legibilidad, ya que cada programador tiene su modo y sus manías y le gusta escribir de una forma determinada. Lo que sí existen son un conjunto de reglas generales, que aplicándolas, en mayor o menor medida, se consiguen programas bastante legibles. Aquí intentaremos resumir estas reglas.
Identificadores significativos
Un identificador es un nombre asociado a un objeto de programa, que puede ser una variable, función, constante, tipo de datos... El nombre de cada identificador debe identificar lo más claramente posible al objeto que identifica (valga la redundancia). Normalmente los identificadores deben empezar por una letra, no pueden contener espacios (ni símbolos raros) y suelen tener una longitud máxima que puede variar, pero que no debería superar los 10-20 caracteres para evitar lecturas muy pesadas.
Un identificador debe indicar lo más breve y claramente posible el objeto al que referencia. Por ejemplo, si una variable contiene la nota de un alumno de informática, la variable se puede llamar nota_informatica. Observe que no ponemos los acentos, los cuales pueden dar problemas de compatibilidad en algunos sistemas. El carácter '_' es muy usado para separar palabras en los identificadores.

Constantes simbólicas
En un programa es muy normal usar constantes (numéricas, cadenas...). Si estas constantes las usamos directamente en el programa, el programa funcionará, pero es más recomendable usar constantes simbólicas, de forma que las definimos al principio del programa y luego las usamos cuando haga falta.
Comentarios, comentarios...
El uso de comentarios en un programa escrito en un lenguaje de alto nivel es una de las ventajas más importantes con respecto a los lenguajes máquina, además de otras más obvias. Los comentarios sirven para aumentar la claridad de un programa, ayudan para la documentación y bien utilizados nos pueden ahorrar mucho tiempo.
No se debe abusar de comentarista, ya que esto puede causar una larga y tediosa lectura del programa, pero en caso de duda es mejor poner comentarios de más.
Estructura del programa
Un programa debe ser claro, estar bien organizado y que sea fácil de leer y entender. Casi todos los lenguajes de programación son de formato libre, de manera que los espacios no importan, y podemos organizar el código del programa como más nos interese.
Para aumentar la claridad no se deben escribir líneas muy largas que se salgan de la pantalla y funciones con muchas líneas de código (especialmente la función principal). Una función demasiado grande demuestra, en general, una programación descuidada y un análisis del problema poco estudiado. Se deberá, en tal caso, dividir el bloque en varias llamadas a otras funciones más simples, para que su lectura sea más agradable. En general se debe modularizar siempre que se pueda, de forma que el programa principal llame a las funciones más generales, y estas vayan llamando a otras, hasta llegar a las funciones primitivas más simples. Esto sigue el principio de divide y vencerás, mediante el cual es más fácil solucionar un problema dividiéndolo en subproblemas (funciones) más simples.

Indentación o sangrado
La indentación o sangrado consiste en marginar hacia la derecha todas las sentencias de una misma función o bloque, de forma que se vea rápidamente cuales pertenecen al bloque y cuáles no. Algunos estudios indican que el indentado debe hacerse con 2, 3 ó 4 espacios. Usar más espacios no aumenta la claridad y puede originar que las líneas se salgan de la pantalla, complicando su lectura.
La indentación es muy importante para que el lector/programador no pierda la estructura del programa debido a los posibles anidamientos.

Presentación
Al hacer un programa debemos tener en cuenta quien o quienes van a usarlo o pueden llegar a usarlo, de forma que el intercambio de información entre dichos usuarios y el programa sea de la forma más cómoda, clara y eficaz posible.
En general, se debe suponer que el usuario no es un experto en la materia, por lo que se debe implementar un interfaz que sea fácil de usar y de aprender, intuitivo y que permita efectuar la ejecución de la forma más rápida posible.

JAVA
Para lograr la legibilidad de un programa es importante considerar aspectos tales como el nombre de los identificadores, escribir el código con cierta alineación y líneas en blanco en lugares apropiados así como realizar una buena documentación.
Identificadores
Los identificadores deben ser elegidos de tal manera que el solo nombre describa el uso que se dará dentro del programa, por tanto no es recomendable usar identificadores de una letra, excepto en el for, ni abreviaturas raras o ambiguas.
Además de eso es recomendable que se escriban:
Empezando con mayúscula si se trata del nombre de una clase o interfaz, y empezando cada palabra en identificador con mayúscula. CírculoColoreado
Sólo con mayúsculas si es el nombre de una constante. DIAS_HABILES
Empezando con minúscula si es el nombre de cualquier otro identificador. De preferencia el nombre de cualquier método debe ser un verbo en infinitivo y el de todo atributo un sustantivo. primerJugador, asignarSueldo().
Archivos fuente
Cada programa en Java es una colección de uno o más archivos. El programa ejecutable se obtiene compilando estos archivos. En cada archivo especifica su contenido como sigue:
Los paquetes (instrucción package).
Los archivos de biblioteca (Instrucciones import).
Un comentario explicando el objetivo del archivo.
Las clases que defines en ese archivo.
Clases
Cada clase debe ir precedida por un comentario que explique su objetivo. Es recomendable especificar sus elementos como sigue:
Estructura de los objetos. Primero las variables y luego las constantes.
Elementos estáticos.
Constructores.
Métodos públicos y privados.
Métodos estáticos.
Clases internas.
Deja una línea en blanco después de cada método.
Todos los elementos deben estar precedidos por public, private o protected. Las variables deben ser privadas. Los métodos y las constantes pueden ser privados o públicos, según se requiera.
Métodos
Todo método excepto main debe empezar con un comentario en formato javadoc
El cuerpo de un método no debe exceder 30 líneas de código. Esto te obligará a dividir un método complejo en varios más sencillos.
Variables y Constantes
NO definas más de una variable por línea:
   int horas = 0, minutos = 0;  //Mal
es mejor:
   int horas = 0,
       minutos = 0;
Alineación y espacios en blanco
La alineación de instrucciones, se puede hacer de manera automática si se emplea el editor emacs (es recomendable modificar los tabuladores para que dejen sólo tres espacios en blanco).

Usa líneas en blanco para separar partes de un método que son lógicamente distintas.

1 comentario: