Ruby on Rails

Rails Design Patterns

Service Objects, Form Objects, Decorators, Presenters, Query Objects, Concerns

22 Interview-Fragen·
Senior
1

Was ist ein Service Object in Rails?

Antwort

Ein Service Object ist eine reine Ruby-Klasse (PORO), die komplexe Geschäftslogik kapselt, typischerweise eine einzelne Operation. Es extrahiert Logik aus Controllern und Models, um das Single Responsibility Principle (SRP) einzuhalten. Üblicherweise stellt ein Service Object eine einzige öffentliche Methode wie call oder execute bereit, was Tests und Wiederverwendung erleichtert.

2

Was ist der Hauptvorteil der Verwendung eines Service Objects, anstatt die Logik in den Controller zu legen?

Antwort

Der Hauptvorteil ist die Testbarkeit und Wiederverwendbarkeit. Ein Service Object ist eine isolierte Ruby-Klasse, die sich leicht isoliert testen lässt, ohne den vollständigen HTTP-Kontext eines Controllers zu simulieren. Außerdem kann dieselbe Logik von verschiedenen Stellen (Controller, Jobs, Konsole) ohne Code-Duplizierung aufgerufen werden.

3

Wie strukturiert man ein Service Object mit einer klaren Namenskonvention?

Antwort

Die empfohlene Konvention ist, ein Verb gefolgt von einem Substantiv zu verwenden, das die ausgeführte Aktion widerspiegelt (z. B. CreateUser, ProcessPayment, SendInvitation). Der Service stellt eine call-Methode als einzigen Einstiegspunkt bereit und kann über UserCreator.call(params) oder UserCreator.new(params).call aufgerufen werden. Diese Konvention macht den Code selbstdokumentierend und vorhersehbar.

4

Was ist ein Form Object und wann verwendet man es?

5

Welches Ruby-Modul sollte man in ein Form Object einbinden, um von ActiveRecord-Validierungen zu profitieren?

+19 Interview-Fragen

Meistere Ruby on Rails für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten