Ruby on Rails: вопросы на собеседовании
Вопросы и ответы по Ruby on Rails: подготовка, примеры и типичные ошибки.
Проверьте себя по Ruby on Rails: 5 вопросов, ~10 минут
Вопросов: 40. Частые идут первыми, сложные возвращаются на повторение.
- Что такое Active Record и как он реализует паттерн Active Record?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- В чём разница между
find,find_by,whereиfirstв ActiveRecord?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - В чём разница между
has_one,has_many,belongs_toиhas_many :through?Junior· спрашивают почти всегда - Что такое Ruby on Rails и каковы его основные принципы (convention over configuration, DRY)?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как Rails обрабатывает защиту от CSRF?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое migrations в Rails и как их создавать и запускать?Junior· спрашивают почти всегда
- Что такое паттерн MVC и как Rails его реализует?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- В каких backend-проектах Ruby on Rails является сильным выбором, а где лучше выбрать более простой или другой стек?Middle· спрашивают почти всегда
- Что такое Rails asset pipeline и как он развивался (Sprockets vs Propshaft)?Middle· полный разбор — Jobs/Boost
- Что такое авторизация vs аутентификация в Rails и какие гемы обычно используются?Middle· полный разбор — Jobs/Boost
- Что такое Rails callbacks (
before_action,after_createи т.д.) и каковы их риски?Middle - Что такое Rails concerns и как они помогают организовывать код?Middle· полный разбор — Jobs/Boost
- Что такое Rails engines и как они помогают модуляризировать большие приложения?Middle
- Как Rails управляет конфигурацией для конкретных окружений?Middle· полный разбор — Jobs/Boost
- Как предотвратить проблему N+1 запросов в Rails с помощью
includes,preloadилиeager_load?Senior· полный разбор — Jobs/Boost - Что такое полиморфные ассоциации (polymorphic associations) в Rails и когда их использовать?Middle· полный разбор — Jobs/Boost
- В чём разница между
renderиredirect_toв контроллере?Middle· полный разбор — Jobs/Boost - Как писать тесты с использованием RSpec в Rails?Middle· полный разбор — Jobs/Boost
- Как работает кэширование в Rails (page, action, fragment, low-level caching)?Middle· полный разбор — Jobs/Boost
- Как сравнить Ruby on Rails с ближайшими backend-альтернативами по скорости разработки, производительности, экосистеме и эксплуатации?Middle· полный разбор — Jobs/Boost
- Как понять, что проблема в сервисе связана с Ruby on Rails, а не с базой, сетью, инфраструктурой или бизнес-логикой?Senior· полный разбор — Jobs/Boost
- Представьте, endpoint на Ruby on Rails иногда отвечает за секунды вместо миллисекунд. Как вы будете искать причину?Senior
- Какие архитектурные решения Ruby on Rails задаёт вокруг request lifecycle, middleware, dependency model, validation и error handling?Middle· полный разбор — Jobs/Boost
- Какие production-риски есть у Ruby on Rails: blocking code, connection pooling, config, auth, observability, deploy или graceful shutdown?Senior
- Проект на Ruby on Rails вырос из MVP в большой production-сервис. Какие проблемы архитектуры и сопровождения вы ожидаете увидеть?Senior· полный разбор — Jobs/Boost
- Как Rails обрабатывает транзакции базы данных и что такое
ApplicationRecord.transaction?Senior - В чём разница между
scopeи методом класса (class method) в ActiveRecord?Middle· полный разбор — Jobs/Boost - Что такое метод
serializeв ActiveRecord и когда его следует избегать?Middle - Что такое strong parameters в Rails и почему они важны для безопасности?Middle· полный разбор — Jobs/Boost
- В чём разница между system tests, integration tests и unit tests в Rails?Middle· полный разбор — Jobs/Boost
- Что такое ActionCable в Rails и для чего он используется?Senior
- Что такое Active Job и как он интегрируется с Sidekiq или Resque?Senior
- Каковы семь RESTful маршрутов в Rails и на какие HTTP-методы/действия они отображаются?Junior
- Расскажите о случае, когда вы проектировали или улучшали сервис на Ruby on Rails с учётом транзакций, безопасности, фоновых задач или мониторинга.Middle· полный разбор — Jobs/Boost
- Как Hotwire/Turbo/Stimulus меняют Rails frontend architecture?Middle· полный разбор — Jobs/Boost
- Как Puma concurrency, database pool и Sidekiq pool связаны между собой?Middle
- Как обрабатывать загрузку файлов в Rails (Active Storage)?Senior· полный разбор — Jobs/Boost
- Что такое Hotwire (Turbo + Stimulus) и как он обеспечивает реактивные интерфейсы без тяжёлого JS?Senior· полный разбор — Jobs/Boost
- Каковы лучшие практики производительности Rails-приложения при высокой нагрузке?Senior
- Какие основные изменения были представлены в Rails 7 и Rails 8?Senior· полный разбор — Jobs/Boost