Quando possibile .. lasci le parentesi dentro o fuori in Ruby?
Quando possibile .. lasci le parentesi dentro o fuori in Ruby?
Risposte:
Dagli elementi dello stile rubino
Ruby ti permette di tralasciare le parentesi, in generale, resistere a questa tentazione.
Le parentesi rendono il codice più facile da seguire. Lo stile generale di Ruby è quello di usarli, tranne nei seguenti casi:
- Tralascia sempre le parentesi vuote
- Le parentesi possono essere tralasciate di un singolo comando circondato da delimitatori ERb: i contrassegni ERb assicurano che il codice sia ancora leggibile
- Una riga che è un singolo comando e un singolo semplice argomento può essere scritta senza parentesi. Personalmente, trovo che lo faccio sempre meno, ma è comunque perfettamente leggibile. Tendo a non apprezzare le singole righe nel normale codice Ruby che hanno più argomenti e senza parentesi.
- Molti linguaggi specifici del dominio basati su Ruby (come Rake) non usano le parentesi per preservare un aspetto più naturale delle loro dichiarazioni.
Uso le parentesi come commenti per aiutare il futuro me ... che è probabile che abbia meno cellule cerebrali rispetto a me attuale :-)
Niente di peggio che guardare un codice che hai scritto 2 anni fa e fraintenderlo, in modo da rompere qualcosa mentre lo modifichi.
Se i genitori mi salveranno in futuro alcuni minuti (o ore) in futuro, ne inserirò quanti ne servono per rendere la dichiarazione chiarissima.
Li tralascio quando faccio roba in stile DSL, come t.column o has_many in rails. Il resto del tempo, generalmente si riduce alla chiarezza, ed è probabilmente una divisione uniforme.
Se intendi nelle chiamate di funzione, metto sempre parentesi perché è sempre più facile da leggere. Se intendi in condizioni (se, mentre) metto parentesi solo quando sono necessarie.
Tendo a lasciarli fuori quando faccio asserzioni come assert_equal. Forse è per renderlo simile al linguaggio specifico del dominio.
Se stai programmando da molto tempo, probabilmente avrai "voglia" di aggiungere parentesi, e in molti casi ci sono buone ragioni per questo.
Il codice è più facile per gli occhi, anche se secondo me, e non ho ancora incontrato un problema: se avrai bisogno delle parentesi, lo saprai in anticipo prima di dover eseguire lo script di debug.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
sto imparando ruby solo da un paio di settimane e dove lavoro usa il minor numero di caratteri possibile e se vieni da qualsiasi altra lingua, c'è da imparare curva per sapere quando stai passando un hash implicito, un array di simboli, passando a simboli a una funzione ... non sono un fan.
if owner.is_a? thing and x > 1
and
non ha la stessa precedenza dell'operatore che &&
ha