Ruby on Rails

Wzorce projektowe w Rails

Service objects, form objects, decorators, presenters, query objects, concerns

22 pytań z rozmów·
Senior
1

Czym jest Service Object w Rails?

Odpowiedź

Service Object to zwykła klasa Ruby (PORO), która hermetyzuje złożoną logikę biznesową, zazwyczaj pojedynczą operację. Wyodrębnia logikę z kontrolerów i modeli, aby zachować Single Responsibility Principle (SRP). Zwykle service object udostępnia jedną publiczną metodę, taką jak call lub execute, co ułatwia jego testowanie i ponowne wykorzystanie.

2

Jaka jest główna zaleta używania Service Object zamiast umieszczania logiki w kontrolerze?

Odpowiedź

Główną zaletą jest testowalność i możliwość ponownego użycia. Service Object to wyizolowana klasa Ruby, łatwa do przetestowania w izolacji bez symulowania pełnego kontekstu HTTP kontrolera. Ponadto tę samą logikę można wywoływać z różnych miejsc (kontrolery, joby, konsola) bez duplikowania kodu.

3

Jak ustrukturyzować Service Object z czytelną konwencją nazewnictwa?

Odpowiedź

Zalecaną konwencją jest użycie czasownika, po którym następuje rzeczownik, odzwierciedlający wykonywaną akcję (np. CreateUser, ProcessPayment, SendInvitation). Usługa udostępnia metodę call jako jedyny punkt wejścia i może być wywołana przez UserCreator.call(params) lub UserCreator.new(params).call. Ta konwencja sprawia, że kod jest samodokumentujący się i przewidywalny.

4

Czym jest Form Object i kiedy go używać?

5

Który moduł Ruby należy włączyć do Form Object, aby korzystać z walidacji ActiveRecord?

+19 pytań z rozmów

Opanuj Ruby on Rails na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo