Il codice e' piu' compatto, piu' comodo da scrivere e modificare, lo stile del codice e' meno soggetto a scelte stilistiche dei programmatori e quindi risulta piu' leggibile, e alla fine tutto questo garantisce maggiore sicurezza rispetto alla presenza di bug.
Invece di usare parentesi graffe aperte e chiuse, si usa l'indentazione.
Poi scompare il punto e virgola per la fine dell'istruzione e le parentesi per racchiudere gli argomenti sono opzionali.
Pero' richiede anche un po' piu' di attenzione, guardate ad esempio questi due pezzi di codice che hanno una piccolissima differenza:
1:
Anagrafica.findById anagraficaid
.populate('conto')
.exec (err, anagrafica) ->
2:
Anagrafica.findById anagraficaid
.populate('conto')
.exec(err, anagrafica) ->
Questo spazio per coffeescript fa in modo che i due codici abbiano due significati diversi:
1:
Anagrafica.findById(anagraficaid).populate('conto').exec(function(err, anagrafica) {
2:
return Anagrafica.findById(anagraficaid).populate('conto').exec(err, anagrafica)(function() {
Quindi entrambe le righe finiscono con la definizione di una funzione.
Ma nel primo caso, gli argomenti tra parentesi tonde (err, anagrafica) essendo staccati da .exec, sono argomenti della function, mentre nel secondo siccome sono attaccati, sono argomenti della .exec e la function e' una funzione senza argomenti.
Nel primo caso gli argomenti della funzione exec non sono racchiusi tra parentesi, perche' le parentesi su coffeescript (quando possibile) sono opzionali.
Quindi
con lo spazio, corrisponde a.exec (err, anagrafica) ->...
.exec( (err, anagrafica) ->...)
Nessun commento:
Posta un commento