1.1 ESTILOS DE PROGRAMACION

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


Programación estructurada (PE) 


La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo. 

Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores. 

Esta técnica incorpora: 


  • Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas.
  • Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
  • Estructuras básicas: existen tres tipos de estructuras básicas:
    • Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
    • Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
    • Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.



Las principales ventajas de la programación estructurada son: 


  • Los programas son mas fáciles de entender
  • Se reduce la complejidad de las pruebas
  • Aumenta la productividad del programador
  • Los programas queden mejor documentados internamente.



Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos. 

Programación modular 

En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad. 

En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. 

A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones. 

Programación orientada a objetos (POO) 

Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos. 

El elemento principal de la programación orientada a objetos es el objeto. 
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. 
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento. 

El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos. 

En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos. 

Programación concurrente 

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. 

Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea. 

Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones. 

Programación funcional 

Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones. 

Programación lógica 

Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).




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)








Comentarios

Entradas más populares de este blog

1.2.3 Diciplina tipos

1.2.4 Funciones

1.2.2 TIPOS DE DATOS