
Rails Design Patterns
Service objects, form objects, decorators, presenters, query objects, concerns
1What is a Service Object in Rails?
What is a Service Object in Rails?
Câu trả lời
A Service Object is a plain Ruby class (PORO) that encapsulates complex business logic, typically a single operation. It extracts logic from controllers and models to maintain the Single Responsibility Principle (SRP). Typically, a service object exposes a single public method like call or execute, making it easy to test and reuse.
2What is the main advantage of using a Service Object instead of putting logic in the controller?
What is the main advantage of using a Service Object instead of putting logic in the controller?
Câu trả lời
The main advantage is testability and reusability. A Service Object is an isolated Ruby class, easily testable in isolation without simulating the complete HTTP context of a controller. Additionally, the same logic can be called from different places (controllers, jobs, console) without code duplication.
3How to structure a Service Object with a clear naming convention?
How to structure a Service Object with a clear naming convention?
Câu trả lời
The recommended convention is to use a verb followed by a noun, reflecting the action performed (e.g., CreateUser, ProcessPayment, SendInvitation). The service exposes a call method as its single entry point, and can be invoked via UserCreator.call(params) or UserCreator.new(params).call. This convention makes code self-documenting and predictable.
What is a Form Object and when to use it?
Which Ruby module to include in a Form Object to benefit from ActiveRecord validations?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Ruby on Rails khác
Ruby Basics
Ruby Object-Oriented Programming
Rails Fundamentals
Routing & Controllers
ActiveRecord Basics
Views & ERB Templates
ActiveRecord Associations
Advanced ActiveRecord Queries
Rails Forms
Authentication & Authorization
Modern Asset Pipeline & Frontend
Rails API Mode
Testing with RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Caching Strategies
Advanced Migrations
Rails Engines & Modular Apps
Performance Optimization
Ruby Metaprogramming
Rails Security
GraphQL with Rails
Deployment & Production
Monitoring & Logging
Rails Upgrade Strategies
Nắm vững Ruby on Rails cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí