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;