Specifiche Sun

Indentazione

 

4. Indentazione
Come unità di indentazione devono essere usati 4 spazi, ma non è specificato come costruire l’indentazione (cioè se usare spazi o tabulazioni). Le tabulazioni devono essere settate ogni 8 spazi (non 4).

4.1. Lunghezza delle linee
Evitare linee più lunghe di 80 caratteri, perché esse non vengono ben gestite da molti terminali e strumenti software.
Nota: Per la documentazione si utilizza una più corta lunghezza di linea, generalmente non più di 70 caratteri.

4.2. Confezionare le linee
Quando un’espressione supera la lunghezza della linea, occorre spezzarla secondo i seguenti principi generali:
Interrompere la linea dopo una virgola o prima di un operatore;
Preferire interruzioni di alto livello, rispetto a interruzioni di basso livello;
Allineare la nuova linea con l’inizio dell’espressione nella linea precedente;
Se le regole precedenti rendono il codice più confuso o il codice è troppo spostato verso il margine destro, utilizzare solo 8 spazi di indentazione.

I seguenti sono degli esempi per spezzare delle invocazioni di metodi:

nomeMetodo(espressioneLunga1, espressioneLunga2, espressioneLunga3,
         espressioneLunga4, espressioneLunga5);

var = nomeMetodo1(espressioneLunga1,
                nomeMetodo2(espressioneLunga2,
                          espressioneLunga3));


I seguenti sono due esempi di interruzione di espressioni aritmetiche.
Il primo è da preferire, dal momento che l’interruzione avviene al di fuori dell’espressione tra parentesi, che è ad un livello più alto.

nomeLungo1 = nomeLungo2 * (nomeLungo3 + nomeLungo4 – nomeLungo5)
             + 4 * nomeLungo6; // PREFERIRE
nomeLungo1 = nomeLungo2 * (nomeLungo3 + nomeLungo4
                           - nomeLungo5) + 4 * nomeLungo6; // EVITARE

Quelli che seguono sono due esempi di indentazione di dichiarazioni di metodi.

Il primo è il caso convenzionale, mentre il secondo sposta la seconda e la terza linea più lontano dal margine destro rispetto all’uso convenzionale, utilizzando un’indentazione con solo 8 spazi.

//INDENTAZIONE CONVENZIONALE
nomeMetodo(int unArg, Object unAltroArg, String ancoraUnAltroArg,
           Object eAncoraUnAltro) {
    ...
}

//INDENTA 8 SPAZI PER EVITARE INDENTAZIONI TROPPO PROFONDE
private static synchronized metodoConNomeLungo(int unArg,
        Object unAltroArg, String ancoraUnAltroArg,
        Object eAncoraUnAltro) {
    ...
}

Lo spezzamento delle linee per l’istruzione if dovrebbe generalmente usare la regola degli 8 spazi, poiché quella convenzionale (4 spazi) rende più difficoltosa la visibilità del corpo. Ad esempio:

//NON USARE QUESTA INDENTAZIONE
if ((condizione1 && condizione2)
    || (condizione3 && condizione4)
    ||!(condizione5 && condizione6)) { //INDENTAZIONI IMPROPRIE
    faiQualcosa();                     //POSSONO FAR DIMENTICARE QUESTA LINEA 
}

//USARE INVECE QUESTA INDENTAZIONE
if ((condizione1 && condizione2)
        || (condizione3 && condizione4)
        ||!(condizione5 && condizione6)) {
    faiQualcosa();
}

//OPPURE QUESTA
if ((condizione1 && condizione2) || (condizione3 && condizione4)
        ||!(condizione5 && condizione6)) {
    faiQualcosa();
}

Quelli che seguono sono tre modi accettabili di formattare le espressioni ternarie:

alpha = (unaLungaEspressioneBooleana) ? beta : gamma;

alpha = (unaLungaEspressioneBooleana) ? beta
                                      : gamma;

alpha = (unaLungaEspressioneBooleana)
        ? beta
        : gamma;


 

Torna all'indice Generale del corso di Specifiche Sun di Software Planet