2012-10-22 18 views
9

Niektóre modele wymagają wcześniejszego załadowania innych modeli. Ale każdy wymagany plik musi zostać załadowany tylko jeden raz.Jakie są najlepsze praktyki dotyczące używania wymagania w Ruby?

Jaki jest najlepszy sposób zarządzania tym? Umieścić wszystkie wymagane wiersze w pliku (np. Init.rb) lub wymagać plików u góry każdego pliku modelu?

+0

Link jest trochę stary, łagodnie powtarza to, co zostało powiedziane w odpowiedzi, ale nadal jest przydatny http://blog.8thlight.com/micah-martin/2007/10/08/micah%27s-general-guidelines-on -ruby-require.html – jtzero

Odpowiedz

11

Niech oceniają każdą opcję:

  1. umieścić wszystkie linie wymagają w pliku (jak init.rb)

    oznacza to, że każda jednostka plik będzie mniej zaśmiecone, jak require s będą wszyscy w jednym miejscu. Jednak może się zdarzyć, że kolejność, w jakiej są zapisane, ma znaczenie, dlatego w tym pliku kończy się skuteczne ręczne rozwiązywanie zależności.

  2. wymagają plików na górze każdego pliku modelu

    Każdy plik będzie miał trochę więcej treści, ale nie trzeba się martwić o zamawianiu jak każdy plik wyraźnie wymaga zależności potrzebuje . Wywoływanie require dla tego samego pliku wiele razy nie daje efektu.

    Oznacza to również, że można wymagać tylko części kodu, co jest przydatne w przypadku bibliotek; na przykład require active_support/core_ext/date/calculations pobiera tylko część biblioteki, której potrzebuje zewnętrzna aplikacja.

Z dwóch, wybrałbym drugi. Jest czystszy, wymaga mniej myślenia i sprawia, że ​​twój kod jest znacznie bardziej modułowy.

2

Dla każdego pliku, require w tym pliku wszystkie pliki, od których to zależy. Nie szkodzi mieć duplikatów z innymi plikami, ponieważ każdy plik jest wymagany tylko raz. Taki jest cel metody require.

Powiązane problemy