/ / Linee guida stile Ruby on Rails, parentesi sui parametri del metodo [chiuso] - ruby-on-rails, ruby, stile di codifica

Linee guida sullo stile di Ruby on Rails, parentesi sui parametri del metodo [chiuso] - ruby-on-rails, ruby, stile di codifica

La seguente guida allo stile del rubino (https://github.com/bbatsov/ruby-style-guide) afferma quanto segue:

  • Ometti le parentesi intorno ai parametri per i metodiche fanno parte di un DSL interno (ad esempio Rake, Rails, RSpec), metodi che hanno lo stato di "parola chiave" in Ruby (ad es. attr_reader, puts) e metodi di accesso agli attributi. Utilizza le parentesi attorno agli argomenti di tutte le altre chiamate di metodi.

Ho avuto un dibattito su cosa fa parte del DSL interno di Rails. Qualcuno può rispondere a quali metodi fanno parte del DSL interno di Rails? link_to o I18n.t? E quali metodi non fanno parte del DSL interno di Rails?

risposte:

1 per risposta № 1

La guida che hai citato è discutibilmente ambigua su questo. Non definisce cosa significa "DSL interno". Quindi come dovresti risolvere questo?

Prima di tutto, direi che è più importante essere coerenti della risposta che scegli, in questo caso.

Devo dire, scopriamo se link_to "dovrebbe" avere parens (di nuovo, non dicendo che c'è una risposta giusta). Si potrebbe fare uno studio più sistematico, ma ho dato un'occhiata ad alcune cose:

  • Le guide di Rails fanno non usa Parens con * link_to *, almeno non le sezioni che ho visto (vedi, ad esempio, http://guides.rubyonrails.org/layouts_and_rendering.html)
  • Ho dato un'occhiata ad alcuni progetti di thoughtbot e centrale su github. Ho scelto a caso un progetto Rails da ciascuno e poi ho cercato quel repository per * link_to *. Il progetto thoughtbot era al 100% senza parens. Il cardine era 14 a 1 senza parens.

Quindi con questi "dati" altamente aneddotici, direi di andaresenza parens. Forse questo significa che * link_to * fa parte del "DSL interno". Se è così, allora probabilmente, almeno, i metodi incorporati che si usano in una vista (path / URL helper, form helper, ecc.) Dovrebbero probabilmente essere considerati come tali.


1 per risposta № 2

Una guida che ho letto, che mi è piaciuta, l'ho suggeritaok per omettere la parentesi dei metodi se è semplice o chiara ma per usarla se il lettore o il compilatore non possono facilmente identificare i parametri o il raggruppamento dei parametri. Il motivo dell'omissione è ridurre il disordine e migliorare la leggibilità, ma non a scapito della perdita di chiarezza.


0 per risposta № 3

Notando che le guide di stile sono puramente un'opinione, per esempio, per il link_to metodo che dici, penso che sia più pulito includere la parentesi ma è puramente la mia opinione. La Rails DSL è piuttosto ampia e include i metodi che hai citato. Puoi controllare il api per ottenere l'elenco completo.