wskazówki, gdzie umieścić klasy w aplikacjach Rails, które nigdzie nie pasują
Zastanawiam się, czy istnieją jakieś najlepsze praktyki dotyczące tego, gdzie umieścić niestandardowe pliki Ruby w aplikacjach Rails, które nie mieszczą się w żadnym domyślnym katalogu (controllers
/models
itp.).
Mówię o klasach, które są używane przez kontrolery / modele itp., Ale nie są podklasami żadnej z klas bazowych Railsów. Klasy, które zawierają funkcje wyodrębnione z modeli, aby uczynić je mniej tłuszczu. Niektóre z nich wyglądają jak modele, ale nie są modelami AR, niektóre wyglądają bardziej jak „usługi”, inne są czymś pośrednim lub czymś innym.
Kilka przypadkowych przykładów:
klasy „strategii”, które obsługują uwierzytelnianie za pomocą hasła, za pośrednictwem Facebooka itp.Obiekty „XParams”, które hermetyzują params lub obiekty „XCreator”, które obsługują przetwarzanie params w celu wykonania złożonej akcji, która skutkuje utworzeniem niektórych modeli AR na końcuklasy, które wysyłają żądania do zewnętrznych interfejsów API lub zawierają te żądania i odpowiedzifałszywe modele, które można zastąpić prawdziwym modelem AR (np. gość)Praca resqueklasy, które przechowują i odczytują informacje z Redisklasy, które wykonują określone działania, takie jak przetwarzanie danych, generowanie raportów itp. i są wywoływane z zadań Resque lub zadań rakeMam ich teraz całkiem sporo, niektóre z nich zostały dodanelib
który kończy się stosem losowych klas i modułów, niektóre wkradają sięapp/models
. Chciałbym jakoś to zorganizować, ale nie wiem od czego zacząć.
Wchodzą tylko modele ARapp/models
? Czy może też umieścić tam dowolne modele domen lub pomocników? Jak decydujesz, czy coś jest modelem?
Czy wszystko, co nie pasujeapp
wejść dolib
? A może powinienem dodać kilka nowych niestandardowych podkatalogów doapp
? Jakie podkatalogi i jak podzielić klasy niestandardowe?
Jak sobie z tym radzisz w swoich projektach? Wiem, że każdy projekt jest nieco inny, ale muszą istnieć pewne podobieństwa.