
Патерни проєктування Rails
Service objects, form objects, decorators, presenters, query objects, concerns
1Що таке Service Object у Rails?
Що таке Service Object у Rails?
Відповідь
Service Object — це звичайний клас Ruby (PORO), який інкапсулює складну бізнес-логіку, зазвичай одну операцію. Він виносить логіку з контролерів і моделей, щоб дотримуватися Single Responsibility Principle (SRP). Зазвичай service object надає єдиний публічний метод на кшталт call або execute, що полегшує його тестування та повторне використання.
2Яка головна перевага використання Service Object замість розміщення логіки в контролері?
Яка головна перевага використання Service Object замість розміщення логіки в контролері?
Відповідь
Головна перевага — це тестованість і повторне використання. Service Object — це ізольований клас Ruby, який легко тестувати окремо без імітації повного HTTP-контексту контролера. Крім того, ту саму логіку можна викликати з різних місць (контролери, джоби, консоль) без дублювання коду.
3Як структурувати Service Object із чіткою угодою про іменування?
Як структурувати Service Object із чіткою угодою про іменування?
Відповідь
Рекомендована угода — використовувати дієслово, за яким іде іменник, що відображає виконувану дію (напр., CreateUser, ProcessPayment, SendInvitation). Сервіс надає метод call як єдину точку входу й може викликатися через UserCreator.call(params) або UserCreator.new(params).call. Ця угода робить код самодокументованим і передбачуваним.
Що таке Form Object і коли його використовувати?
Який модуль Ruby включити у Form Object, щоб скористатися валідаціями ActiveRecord?
+19 питань зі співбесід
Інші теми співбесід Ruby on Rails
Основи Ruby
Об'єктно-орієнтоване програмування в Ruby
Основи Rails
Routing & Controllers
Основи ActiveRecord
Views та шаблони ERB
Асоціації ActiveRecord
Розширені запити ActiveRecord
Форми Rails
Автентифікація та авторизація
Сучасний Asset Pipeline та frontend
Режим API Rails
Тестування з RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Стратегії кешування
Розширені міграції
Rails Engines та модульні застосунки
Оптимізація продуктивності
Метапрограмування в Ruby
Безпека Rails
GraphQL із Rails
Розгортання та Продакшн
Monitoring & Logging
Стратегії оновлення Rails
Опануй Ruby on Rails для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно