# Design Pattern in Rails (Ruby on Rails) > Service objects, form objects, decorators, presenters, query objects, concerns - 22 domande da colloquio - Senior - [Domande da colloquio: Ruby on Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio.md) ## 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. ## Altre 19 domande disponibili - Cos'è un Form Object e quando usarlo? - Quale modulo Ruby includere in un Form Object per beneficiare delle validazioni di ActiveRecord? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Ruby on Rails - [Fondamenti di Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-basics.md): 25 domande, Junior - [Programmazione orientata agli oggetti in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-oop.md): 20 domande, Junior - [Fondamenti di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-fundamentals.md): 18 domande, Junior - [Routing & Controllers](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/routing-controllers.md): 22 domande, Junior - [Fondamenti di ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-basics.md): 25 domande, Junior - [Views e template ERB](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/views-erb-templates.md): 20 domande, Junior - [Associazioni ActiveRecord](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-associations.md): 24 domande, Mid-Level - [Query ActiveRecord avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-record-queries.md): 28 domande, Mid-Level - [Form Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-forms.md): 20 domande, Mid-Level - [Autenticazione e autorizzazione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/authentication-authorization.md): 22 domande, Mid-Level - [Asset Pipeline moderno e frontend](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-asset-pipeline.md): 18 domande, Mid-Level - [Modalità API di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-api-mode.md): 20 domande, Mid-Level - [Test con RSpec](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-testing-rspec.md): 24 domande, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-job-background-jobs.md): 20 domande, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-cable-websockets.md): 18 domande, Mid-Level - [ActionMailer](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/action-mailer.md): 18 domande, Mid-Level - [ActiveStorage](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/active-storage.md): 20 domande, Mid-Level - [Strategie di caching](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/caching-strategies.md): 20 domande, Mid-Level - [Migrazioni avanzate](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/database-migrations-advanced.md): 20 domande, Mid-Level - [Rails Engines e app modulari](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-engines-modular-apps.md): 18 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/performance-optimization.md): 26 domande, Senior - [Metaprogrammazione in Ruby](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/ruby-metaprogramming.md): 20 domande, Senior - [Sicurezza in Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-security.md): 22 domande, Senior - [GraphQL con Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/graphql-rails.md): 20 domande, Senior - [Deployment e Produzione](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-deployment-production.md): 20 domande, Senior - [Monitoring & Logging](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/monitoring-logging.md): 20 domande, Senior - [Strategie di upgrade di Rails](https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-upgrade-strategies.md): 18 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/ruby-on-rails/domande-colloquio/rails-design-patterns