Corregir estilo/formato de código incorrecto
Opened this issue · 0 comments
Les pedimos que sean consistentes en el estilo de su código, y que intenten en la medida de lo posible ceñirse al de la cátedra. (Esto no es capricho: la buena práctica al tocar código existente, es usar el estilo ya imperante.)
Un estilo consistente ayuda a la persona que reivsa el código a poder centrarse en la sustancia del mismo, pues la uniformidad de la tipografía ayuda a centrarse en la estructura de la línea (y la legibilidad de la línea ayuda a centrarse en la estructura de la función, etc. etc.).
Ejemplo de nuestro estilo:
int maximo(int *vector, int n) { // 1, 2
if (n == 0) { // 3, 4, 5, 6
...
}
else { // 7
...
}
for (int i = 0; i < n; i++) { // 8
// ...
}
return 0; // 9
- La llave de apertura de la función, en la misma línea que su declaración.
- Notación de puntero con el asterisco a la derecha (
int *x
, noint* x
). - Cuatro espacios de indentación por nivel.
- Espacio entre la palabra reservada y el parentesis (no usar
if(
) - Espacio entre operador y operandos (
n == 0
, y non==0
) - Espacio entre el fin de la expresión y la llave de apertura de bloque (no usar
){
) - El else en su propia línea (no
} else {
) - Espacios tras los punto y coma del ciclo (nunca
i = 0;i < n;i++
) - Valor de retorno sin paréntesis.
Formato automático
La mayoría de lenguajes de programación cuentan con un programa capaz de auto-formatear código siguiendo ciertos criterios. Estas herramientas se pueden correr a mano, antes de compartir un código; o directamente integrado en el editor.
Mi recomendación personal es que pueden usarlas a partir del TDA Lista. (De esta manera, en los TDA anteriores pueden practicar acostumbrarse al estilo "a mano", que es una habilidad importante.)
La herramienta más común para formater código C hoy en día es clang-format (página oficial, tutorial).
La mayoría de auto-formateadores (salvo honrosas excepciones) acepta un archivo de configuración donde especificar el estilo. Pueden encontrar un archivo .clang-format
compatible con el estilo de la cátedra en este repo, o en algo2_tps.