Ruby on Rails

Rails Design Patterns

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

22 câu hỏi phỏng vấn·
Senior
1

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.

2

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.

3

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.

4

What is a Form Object and when to use it?

5

Which Ruby module to include in a Form Object to benefit from ActiveRecord validations?

+19 câu hỏi phỏng vấn

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í