Formatting - ajpaez/Learning GitHub Wiki
Lo principal, ser claros! Código formateado es comunicación. La legibilidad de tu código tendrá un efecto profundo en todos los cambios que se harán. El estilo de codificación y la legibilidad sentarán precedentes que continuaran afectando la mantenibilidad y la extensibilidad después de que el código original se haya modificado más allá del reconocimiento.
Comenzaremos con el tamaño en vertical de nuestro código. Este tamaño está estrechamente relacionado con el tamaño de la clase. Aunque esto no debería ser una tajante y rápida regla, es muy deseable. Clases pequeñas son usualmente fáciles de entender que las clases grandes.
Cada línea representa una expresión o clausula, y cada grupo de líneas representa una idea completa, estas ideas deberán separarse entre ellas con una línea en blanco. Eliminar esta espacio hará que tengamos un efecto notablemente oscuro en la legibilidad de nuestro código.
Si el espacio separa conceptos, la densidad vertical implica cercanía en la asociación de ideas. Por lo que, líneas de código estén relacionado deberán tener una mayor densidad vertical entre ellas
En este apartado intentaremos evitar el desplazarnos arriba y abajo por una clase buscando una función, o que pierdas tiempo intentando encontrar las funciones relacionadas con una función principal. Los conceptos o ideas que estén estrechamente vinculados deberán mantener una distancia vertical mínima, en la medida de lo posible, es decir, que dichas funciones estén por su propia naturaleza en la misma clase. Su separación vertical media entre funciones relacionadas deberá ser relativa a la importancia entre ellas para entender cada una por separado. Lo que buscamos es evitar dar vueltas por todo nuestro código para encontrar y entender estás funciones relacionadas.
Las variables deberán declararse tan cerca como sea posible de donde vayan a ser usadas. Las variables para bucles deberán ser declaradas dentro del propio bucle
Deberán declararse al comienzo de la clase, esto no deberá incrementar la distancia vertical entre ellas.
Si una función llama a otra, deberán estar verticalmente cerca, y la que llama debe de estar por encima de la que es llamada si es posible. De esta forma el lector sabrá de antemano que la definición de la función incluida en la que está leyendo estará cerca o poco después de la función que está leyendo.
Algunas partes del código están bien cerca de otras partes, entre ellos existe una afinidad conceptual. Cuanto más fuerte sea esta afinidad, menor deberá ser la distancia entre ellos. Esta afinidad está basada en una dependencia directa, como la llamada de una función a otra o en una función el uso de una variable. Esta afinidad también puede venir dada por varias funciones que realizan una operación similar o pequeñas variaciones de la misma tarea básica.
En general estableceremos el orden de dependencias de llamadas hacia abajo, la función que es llamada debe de estar debajo de la función que la llama.
Líneas cortas!!! Como normal general mantendremos el no necesitar nunca hacer scroll hacia la derecha
Seguiremos las siguiente normas:
- Separar ambas partes de una asignación del símbolo igual con un espacio en blanco.
"java".replace(target, replacement);
- No poner espacios entre el nombre de una función y la apertura de paréntesis.
- Separar los argumentos en la llamada a una función con un espacio en blanco
"java".replace(target, replacement);
- Separar con un espacio en blanco la prioridad de los operadores:
- Los factores no tendrán espacio entre ellos porque estos operadores ya tienen una alta prioridad
- Los términos estarán separados por un espacio en blanco porque la suma y resta tiene una baja prioridad
int a = x*y + w/z;
Mantén un tamaño inferior al que tu vista puede llegar a la hora de declarar variables (modificadores, tipo y nombre de la misma) No alinees las declaraciones en horizontal según la longitud de los modificadores o de sus nombres.
La indentación horizontal de tus líneas es importante para poder identificar en todo momento en que sección/parte de tu código te encuentras, así como, el scope al que pertenece una variable o un fragmento de código.
Algunas veces es tentador romper la indentación con un bloque if o bucles while de una sola línea. Vuelve atrás y no lo hagas. No rompas la indotación.