2012-10-22 9 views
9

Alcuni modelli richiedono il caricamento di altri modelli per primi. Ma ogni file richiesto deve essere caricato solo una volta.Quali sono le best practice per l'utilizzo di require in Ruby?

Qual è il modo migliore per gestirlo? Metti tutte le linee necessarie in un file (come init.rb) o richiedi i file nella parte superiore di ogni file del modello?

+0

collegamento è un po 'vecchio, reitera leggermente quello che è stato detto nella risposta, ma comunque utile http://blog.8thlight.com/micah-martin/2007/10/08/micah%27s-general-guidelines-on -ruby-require.html – jtzero

risposta

11

Valutiamo ogni opzione:

  1. mettere tutte le linee richiedere in un file (come init.rb)

    Ciò significa che ogni singolo file sarà meno denso, come require tutti saranno in un posto. Tuttavia, può succedere che l'ordine in cui sono scritti sia importante, così finisci per fare in modo efficace la risoluzione delle dipendenze manualmente in questo file.

  2. richiedere i file nella parte superiore di ogni file modello

    Ogni file avrà un po 'più contenuto, ma non dovrete preoccuparvi di ordinare in quanto ogni file richiede esplicitamente le dipendenze di cui ha bisogno . Chiamare lo require per lo stesso file più volte non ha alcun effetto.

    Ciò significa anche che è possibile richiedere solo parti del codice, il che è utile per le biblioteche; per esempio. require active_support/core_ext/date/calculations ottiene solo la parte della libreria richiesta dall'app esterna.

Dei due, sceglierei il secondo. È più pulito, richiede meno riflessioni e rende il tuo codice molto più modulare.

2

Per ogni file, require all'interno di tale file tutti i file da cui dipende. Non fa male avere duplicati con altri file perché ogni file è richiesto solo una volta. Questo è lo scopo del metodo require.

Problemi correlati