
Rails Design Patterns
Service Objects, Form Objects, Decorators, Presenters, Query Objects, Concerns
1Was ist ein Service Object in Rails?
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.
2Was ist der Hauptvorteil der Verwendung eines Service Objects, anstatt die Logik in den Controller zu legen?
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.
3Wie strukturiert man ein Service Object mit einer klaren Namenskonvention?
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.
Was ist ein Form Object und wann verwendet man es?
Welches Ruby-Modul sollte man in ein Form Object einbinden, um von ActiveRecord-Validierungen zu profitieren?
+19 Interview-Fragen
Weitere Ruby on Rails-Interviewthemen
Ruby-Grundlagen
Objektorientierte Programmierung in Ruby
Rails-Grundlagen
Routing & Controllers
ActiveRecord-Grundlagen
Views & ERB-Templates
ActiveRecord-Assoziationen
Fortgeschrittene ActiveRecord-Abfragen
Rails-Formulare
Authentifizierung & Autorisierung
Moderne Asset Pipeline & Frontend
Rails API-Modus
Testen mit RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Caching-Strategien
Fortgeschrittene Migrationen
Rails Engines & modulare Apps
Performance-Optimierung
Ruby-Metaprogrammierung
Rails-Sicherheit
GraphQL mit Rails
Deployment & Produktion
Monitoring & Logging
Rails-Upgrade-Strategien
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