Identación
Se deberían usar cuatro espacios como unidad de identación. La construcción exacta de la
identación no está especificada (espacios o tabs). Los tabuladores deben ser exactamente
cada 8 espacios (no cada 4).
Longitud de Línea
Evitar líneas máyores de 80 caracteres, ya que no son bien manejadas por muchos terminales y
herraientas.
|
Nota:
Los ejemplos para usarlos en documentación deberían tener una longitud de línea más corta,
generalmente no más de 70 caracteres.
|
Ruptura de Líneas
Cuando una expresión no entre en una sóla línea, se debe romper de acuerdo a estos
principio generales:
- Romper después de una coma.
- Romper antes de un operador
- Preferir las rupturas de alto nivel a las de bajo nivel.
- Alinear la nueva línea con el principio de la expresión al mismo nivel de la línea
anterior.
- Si las reglas anteriores conducen a la confusión del código o codigo que se estrella
contra el margen derechao, sólo identamos 8 espacios.
Aquí tenemos algunos ejemplos de rupturas de llamadas a métodos:
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
Abajo hay dos ejemplos de rupturas de expresiones aritméticas. La primera es la preferida,
ya que la ruptura ocurre fuera de la expresión entre paréntsis, que está a un nivel superior:
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
Abajo hay dos ejemplos de identaciones de declaraciones de métodos. La primera es el caso
convencional. La segunda desplazaría la segunda y la tercera líneas tan a la derecha si se
usara la identación convencional, que por eso se identa sólo 8 espacios:
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
La ruptura de líneas de sentencias if genealmente usará la regla de 8-espacios, ya que la
identación convencional (4 espacios) hace díficil la lectura de código. Por ejemplo:
//DON’T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
Aqí tenemos tres formas aceptas de formatear expresiones terciarias:
alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
: gamma;
alpha = (aLongBooleanExpression)
? beta
: gamma;