Estilo de programación (también llamado estándares de código, guías de estilo o convención de código) es un término que describe convenciones para escribir código fuente en ciertos lenguajes de programación.
El estilo de programación es dependiente del lenguaje de programación que se haya elegido para programar, es decir que cada lenguaje puede tener distintas convenciones pero cada lenguajes tiene las propias.
Una pieza clave para un buen estilo es la elección apropiada de nombres de variable. Variables pobremente nombradas dificultan la lectura del código fuente y su comprensión.
Como ejemplo, considérese el siguiente extracto de pseudocódigo:
get a b c if a < 24 and b < 60 and c < 60 return true else return false
Debido a la elección de nombres de variable, es difícil darse cuenta de la función del código. Compárese ahora con la siguiente versión:
get horas minutos segundos if horas < 24 and minutos < 60 and segundos < 60 return true else return false
La intención el código es ahora más sencilla de discernir, "dado una hora en 24 horas, se devolverá true si es válida y false si no".
Estilo de indentación, en lenguajes de programación que usan llaves para sangrar o delimitar bloques lógicos de código, como por ejemplo C, es también un punto clave el buen estilo. Usando un estilo lógico y consistente hace el código de uno más legible. Compárese:
if(horas < 24 && minutos < 60 && segundos < 60){
return true;
}else{
return false;
}
o bien:
if(horas < 24 && minutos < 60 && segundos < 60)
{
return true;
}
else
{
return false;
}
con algo como:
if(horas<24&&minutos<60&&segundos<60){return true;}
else{return false;}
Los primeros dos ejemplos son mucho más fáciles de leer porque están bien indentados, y los bloques lógicos de código se agrupan y se representan juntos de forma más clara.
Algunos programadores piensan que las estructuras de decisión como las anteriores, donde el resultado de la decisión es meramente una computación de un valor booleano, son demasiado prolijos e incluso propensos al error. Prefieren hacer la decisión en la computación por sí mismo, como esto:
return horas < 12 && minutos < 60 && segundos < 60;
La diferencia es, con frecuencia, puramente estilística y sintáctica, ya que los compiladores modernos producirán código objeto idéntico en las dos formas.
El uso de estructuras de control lógicas para bucles también es parte de un buen estilo de programación. Ayuda a alguien que esté leyendo el código a entender la secuencia de ejecución (en programación imperativa). Por ejemplo, el siguiente pseudocódigo:
cuenta = 0 while cuenta < 5 print cuenta * 2 cuenta = cuenta + 1 endwhile
El extracto anterior cumple con las dos recomendaciones de estilo anteriores, pero el siguiente uso de la construcción for hace el código mucho más fácil de leer:
for cuenta = 0, cuenta < 5, cuenta=cuenta+1 print cuenta * 2
En muchos lenguajes, el patrón frecuentemente usado "por cada elemento en un rango" puede ser acortado a:
for cuenta = 0 to 5 print cuenta * 2
Los lenguajes de formato libre ignoran frecuentemente los espacios en blanco. El buen uso del espaciado en la disposición del código de uno es, por tanto, considerado un buen estilo de programación.
Compárese el siguiente extracto de código C:
int cuenta; for(cuenta=0;cuenta<10;cuenta++){printf("%d",cuenta*cuenta+cuenta);}
con:
int cuenta; for (cuenta = 0; cuenta < 10; cuenta++) { printf("%d", cuenta * cuenta + cuenta); }
En los lenguajes de programación de la familia C se recomienda también evitar el uso de caracteres tabulador en medio de una línea, ya que diferentes editores de textos muestran su anchura de forma diferente.
El lenguaje de programación Python usa sangría para indicar estructuras de control, por tanto se requiere obligatoriamente una buena sangría. Haciendo esto, la necesidad de marcar con llaves ({ y }) es eliminada, y la legibilidad es mejorada sin interferir con los estilos de codificación comunes. Con todo, esto lleva frecuentemente a problemas donde el código es copiado y pegado dentro de un programa Python, requiriendo un tedioso reformateado. Adicionalmente, el código Python se vuelve inusable cuando es publicado en un foro o página web que elimine el espacio en blanco.