Estilos de códigos

Estilos de códigos
Información sobre la plantilla
80*100
Concepto:El código de un programa es leído por muchas personas, bien para repararlo, para ampliarlo o simplemente para evaluarlo. Es fundamental, para realizar una buena lectura de un programa, que el mismo esté bien redactado, con estilo, para que su significado sea claro y transparente.

Estilos de código: Es el conjunto de reglas o normas usadas para escribir código y que incluye una gran gama de aspectos dentro del proceso de codificación. Un buen estilo de programación debe aportar a la eficiencia del proceso de desarrollo, logrando que los programas sean más robustos y comprensibles.

Para desarrollar la industria de software se le dedica especial atención al conocimiento de las técnicas, herramientas y aspectos a tener en cuenta para lograr una buena calidad en los productos de software, partiendo de que la calidad y la eficiencia son características que debe tener todo software para ser exitoso y ser competitivo en el mercado.

Uno de los aspectos a tener en cuenta para lograr una buena calidad es la manera en que se codifican los programas. Codificar de una manera clara y legible contribuye a la calidad del software.

Crisis del software

Existen un conjunto de elementos que contribuyen a lo que se denomina como la Crisis del software.

  • Se emplea más tiempo en mantener un programa que en crearlo por primera vez.
  • El mantenimiento implica corrección de errores y ampliación de funcionalidad.
  • El mantenimiento implica, por tanto, un profundo estudio del código fuente.
  • El software que no se mantiene es aquel que no se usa.
  • Es realmente difícil que un solo programador mantenga una aplicación determinada a lo largo de toda su vida.
  • Otros programadores deben ser capaces de leer el código.
  • Otros programadores deben poder aprender leyendo código.

Ejemplo de código ilegible

include <stdio.h> int l;int main(int o,char **O, int I)

{char c,*D=O[1];if(o>0) { for(l=0;D[l ];D[l ++]-=10){D [l++]-=120;D[l]-= 110;while (!main(0,O,l))D[l] += 20; putchar((D[l]+1032) /20 ) ; }putchar(10);}

else{

c=o+(D[I]+82)%10-(I>l/2)* (D[I-l+I]+72)/10-9;D[I]+=I<0?0 :!(o=main(c/10,O,I 1))*((c+999 )%10-(D[I]+92)%10); }

return o; }

A través de este ejemplo les mostramos lo difícil que puede resultar leer un código escrito sin estilos ni reglas.

Etapa de codificación (normas)

Las buenas o malas normas que se asuman en la etapa de codificación influirán positiva o negativamente en:

La calidad del sistema que se construye:

En un programa mal escrito la depuración de errores se dificulta pues el programador debe invertir mucho tiempo en descubrir qué es lo que está haciendo el programa en un punto determinado, para después comenzar trabajar en él. Un buen estilo facilita la lectura y por ende la corrección rápida de los errores en el código.

La eficiencia en la etapa de mantenimiento del software:

La tarea de mantenimiento es una de las más arduas del ciclo de vida del software. La claridad de un programa es de vital importancia, pues la mayor parte del tiempo de mantenimiento se emplea en estudiar y comprender el código fuente existente. El código que parece obvio al programador en el momento en que lo escribe, es confuso y poco entendible cuando lo vuelve a revisar una semana después. Este hecho se hace mucho más evidente, cuando se tiene que revisar y modificar un código elaborado por otro programador. Un buen estilo asegura que los programas sean más comprensibles y por tanto, más fáciles de extender o mantener.

La comunicación entre los miembros de un equipo de desarrollo:

Rara vez el desarrollo de un producto de software se acomete por un solo programador. Actualmente se tienen equipos de programadores que trabajan todos en el mismo sistema. Se necesita entonces una comunicación eficiente entre los miembros de un grupo de desarrollo. Para esto es necesario que todos sus miembros usen un estilo común en el código fuente que generen. La homogeneidad del código dentro de un grupo de desarrollo garantiza la comunicación entre los miembros del equipo. Algunas empresas dedicadas a la programación imponen a sus empleados una uniformidad, para facilitar el intercambio de programas y la modificación de estos por cualquier empleado.

Situación real

En el “mundo real”, sin embargo, ocurre que:

  • Cada programador tiene su propio estilo para escribir código.
  • Los productores modernos de compiladores ponen cada vez más detalles para facilitar la escritura del código e introducen ciertas normas de estilo.
  • Los programadores no entienden la necesidad de escribir un código claro, fácilmente comprensible para aquel que lo lea.
  • La gran mayoría de los programadores están convencidos de que los estilos de programación responden a criterios puramente estéticos.

¿Cuál es el mejor estilo?

“El mejor estilo es el que más aporte a la eficiencia del proceso de desarrollo y el que logre los programas más robustos y fáciles de usar. Todo lo que vaya en contra de esto es incorrecto, sobre todo porque para cumplir con este principio no se entra en contradicción con la propia lógica del problema.”

En este sentido, no existe un estilo de código “definido y mundialmente estandarizado”. Independientemente de que las plataformas de desarrollo influyan en cierto modo a la formación de estilos de programación, es responsabilidad de cada equipo determinar el suyo.

Aspectos fundamentales

Los aspectos fundamentales que se deben tener en cuenta a la hora de confeccionar un estilo de código son:

  • Notación.
  • Comentarios.
  • Identación.
  • Espacios y líneas en blanco.
  • Longitud máxima de las líneas de caracteres.
  • Declaración de variables.
  • Declaración de constantes.
  • Parámetros en los métodos.

Ejemplos de estilos de código

Estilo A

Indentación

La indentación es a 3 espacios en blanco.

Ejemplo: if(a != 1) { print(“a, es distinto de 1”); }

Comentarios Los comentarios se definen comenzando con los caracteres /* y terminando con */ Ejemplo: /* esto es un comentario */.

Declaraciones

Las constantes se declaran en mayúsculas. Ejemplo: const int ESTOESUNACONSTANTE = 20;.

Las variables deben ser explícitas, sin abreviaturas y capitalizadas Ejemplo: int NumeroDeVisitantes;

Para declarar una clase se hará uso de un sustantivo comenzando en mayúscula el primer carácter. Ejemplo: class Televisor.

Los métodos de una clase tienen la forma encamellada (Camel en inglés), es decir se capitalizan las palabras que componen el nombre del método excepto la primera. Ejemplo: int cantidadDeVehiculos();

Miscelania

Las llaves para abrir y cerrar un método o un bloque de control de flujo se indentan al mismo nivel del bloque al que pertenecen. Ejemplo:

if(vaciar != 1) { while(!vacio()) { extraerBotella(); } }

Estilo B

Indentación La indentación es a 8 espacios en blanco. Ejemplo: if(a!=1) { print(“a, es distinto de 1”); }

Comentarios

Los comentarios se definen comenzando con los caracteres //. Ejemplo: // esto es un comentario.

Además se deberá incluir en cada declaración de clase el siguiente comentario:

- Clase@ <Nombre de la clase>

- Propósito@ < Propósito para el cual se diseño la clase>

- Autor@ <Autor o Autores separados por coma>

- Versión@ <Versión de la clase y fecha de actualización>


Declaraciones

Las constantes se declaran en mayúsculas separando con el carácter ( _ ) las palabras.

Ejemplo: const int ESTO_ES_UNA_CONSTANTE = 20;.

Las variables deben ser explícitas, sin abreviaturas ejemplo: int NumeroDeVisitantes;

Para declarar una clase se hará uso de un sustantivo comenzando en mayúscula el primer carácter y poniendo el prefijo ( C_ ) al principio del nombre. Ejemplo: class C_Televisor.

Los nombres de los métodos pertenecientes a una clase se escriben todo en minúsculas separando las palabras que componen el nombre con el carácter ( _ ) y se aceptan abreviaturas. Ejemplo: int cant_vehiculos();

Espacios en blanco

Se colocarán espacios en blanco entre operadores lógicos-aritméticos y sus operandos. Ejemplo: if(a == b) { int x = 5: x = (a + 1) * b; hazAlgoConX(x); }

Fuentes

  • Caro R. Barceló (2002). Introducción a la programación con orientación a objetos.