dato/i

Corregir estilo/formato de código incorrecto

Opened this issue · 0 comments

dato commented

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
  1. La llave de apertura de la función, en la misma línea que su declaración.
  2. Notación de puntero con el asterisco a la derecha (int *x, no int* x).
  3. Cuatro espacios de indentación por nivel.
  4. Espacio entre la palabra reservada y el parentesis (no usar if()
  5. Espacio entre operador y operandos (n == 0, y no n==0)
  6. Espacio entre el fin de la expresión y la llave de apertura de bloque (no usar ){)
  7. El else en su propia línea (no } else {)
  8. Espacios tras los punto y coma del ciclo (nunca i = 0;i < n;i++)
  9. 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.