Ho trascorso la maggior parte degli ultimi anni lavorando principalmente con C # e SQL. Ogni programmatore con cui ho lavorato in quel periodo aveva l'abitudine di collocare la parentesi graffa di apertura di una funzione o di una dichiarazione del flusso di controllo su una nuova riga. Così ...
public void MyFunction(string myArgument)
{
//do stuff
}
if(myBoolean == true)
{
//do something
}
else
{
//do something else
}
Sono sempre stato colpito da quanto sia dispendioso lo spazio, specialmente nelle dichiarazioni if / else. E so che esistono alternative nelle versioni successive di C #, come:
if(myBoolean == true)
//do something on one line of code
Ma quasi nessuno li ha usati. Ognuno ha fatto la cosa da ricciolo su newline.
Poi sono tornato a fare JavaScript dopo una lunga assenza. Nella mia memoria, gli sviluppatori JavaScript erano soliti fare esattamente la stessa cosa tra parentesi graffe, ma con tutte le nuove fantasiose librerie e cose, la maggior parte degli sviluppatori ha messo la parentesi di apertura dopo la dichiarazione:
function MyJavaScriptFunction() {
//do something
}
In questo puoi vedere il senso, perché da quando l'uso di chiusure e puntatori a funzioni è diventato popolare in JavaScript, risparmia molto spazio e rende le cose più leggibili. Quindi mi chiedevo perché non fosse visto come fatto in C #. In effetti, se provi il costrutto di cui sopra in Visual Studio 2013, in realtà lo riformatta per te, mettendo la parentesi graffa di apertura su una nuova linea!
Ora, ho appena visto questa domanda su Code Review SE: https://codereview.stackexchange.com/questions/48035/questions-responses-let-me-tell-you-about-you in cui ho appreso che in Java, un linguaggio che non conosco eccessivamente, è considerato de-rigore aprire le parentesi graffe subito dopo la dichiarazione, in modo JavaScript moderno.
Avevo sempre capito che C # era originariamente modellato su Java e rispettava molti degli stessi standard di codifica basale. Ma in questo caso, sembra di no. Quindi presumo che ci debba essere una buona ragione: qual è la ragione? Perché gli sviluppatori C # (e Visual Studio) applicano l'apertura di parentesi graffe su una nuova riga?
if(myBoolean == true)
ha poco senso per me. Mentre ci siamo, mentre no if ((myBoolean == true) == true)
?? Basta if (myBoolean)
e basta. Mi dispiace, una mia piccola pipì.