4. Indentazione
Come unità di indentazione devono essere usati 4 spazi, ma non è
specificato come costruire lindentazione (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 unespressione 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 linizio dellespressione
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 linterruzione avviene
al di fuori dellespressione 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 alluso
convenzionale, utilizzando unindentazione 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 listruzione 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