Per molto tempo ho sostenuto che erano di valore uguale, o così molto vicino alla pari che il guadagno possibile facendo la scelta giusta era di gran lunga inferiore al costo di sostenendo a riguardo.
Essere coerente è importante , però. Quindi ho detto di lanciare una moneta e scrivere codice.
Ho visto i programmatori resistere a cambiamenti come questi prima. Farsene una ragione! Sono passato molte volte nella mia carriera. Uso anche stili diversi nel mio C # rispetto al mio PowerShell.
Alcuni anni fa stavo lavorando a un team (circa 20 sviluppatori) che ha deciso di chiedere l'input, e quindi prendere una decisione, e quindi applicarla a tutti i codici base. Avremmo 1 settimana per decidere.
Un sacco di gemiti e amp; strabuzzare gli occhi. Un sacco di "Mi piace il mio modo, perché è meglio" ma senza sostanza.
Mentre stavamo studiando i punti più fini della domanda, qualcuno ha chiesto come affrontare questo problema in uno stile che combacia con la stessa linea:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Si noti che non è immediatamente ovvio dove finisce l'elenco dei parametri e inizia il corpo. Confronta con:
void MyFunction(
int parameterOne,
int parameterTwo)
{
int localOne,
int localTwo
}
Abbiamo fatto alcune letture su come le persone di tutto il mondo si sono occupate di questo problema e abbiamo trovato lo schema per aggiungere una riga vuota dopo la parentesi aperta:
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
Se hai intenzione di fare un'interruzione visiva, puoi farlo anche con un tutore. Anche le tue interruzioni visive diventano coerenti.
Modifica : due alternative alla soluzione "extra blank line" quando usi K & R:
1 / Indenta gli argomenti della funzione in modo diverso dal corpo della funzione
2 / Metti il primo argomento sulla stessa riga del nome della funzione e allinea gli ulteriori argomenti sulle nuove linee a quel primo argomento
Esempi:
1 /
void MyFunction(
int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
2 /
void MyFunction(int parameterOne,
int parameterTwo) {
int localOne,
int localTwo
}
/ Modifica
Continuo a sostenere che la coerenza è più importante di altre considerazioni, ma se non abbiamo un precedente stabilito , allora brace-on-next-line è la strada da percorrere.