Ruby on Rails

Design Pattern in Rails

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

22 domande da colloquio·
Senior
1

Cos'è un Service Object in Rails?

Risposta

Un Service Object è una semplice classe Ruby (PORO) che incapsula logica di business complessa, tipicamente una singola operazione. Estrae la logica dai controller e dai model per mantenere il Single Responsibility Principle (SRP). Di solito un service object espone un unico metodo pubblico come call o execute, rendendolo facile da testare e riutilizzare.

2

Qual è il vantaggio principale dell'uso di un Service Object invece di mettere la logica nel controller?

Risposta

Il vantaggio principale è la testabilità e la riusabilità. Un Service Object è una classe Ruby isolata, facilmente testabile in isolamento senza simulare il contesto HTTP completo di un controller. Inoltre, la stessa logica può essere richiamata da posti diversi (controller, job, console) senza duplicazione di codice.

3

Come strutturare un Service Object con una convenzione di denominazione chiara?

Risposta

La convenzione consigliata è usare un verbo seguito da un sostantivo, che rifletta l'azione eseguita (es. CreateUser, ProcessPayment, SendInvitation). Il servizio espone un metodo call come unico punto di ingresso e può essere invocato tramite UserCreator.call(params) o UserCreator.new(params).call. Questa convenzione rende il codice autodocumentante e prevedibile.

4

Cos'è un Form Object e quando usarlo?

5

Quale modulo Ruby includere in un Form Object per beneficiare delle validazioni di ActiveRecord?

+19 domande da colloquio

Padroneggia Ruby on Rails per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis