Spread the love

Ruby on Rails, пожалуй, самый известный фреймворк Ruby. Его простота использования, архитектура MVC, сообщество и масштабируемость — вот причины его популярности.

Некоторые из громких имен, которые используют Ruby on Rails, — это GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch и Zendesk, и это лишь некоторые из них.

Если вы являетесь инженером Ruby on Rails среднего или опытного уровня, понимание характера вопросов, которые вы, вероятно, найдете на своем следующем собеседовании, будет разумным шагом.

Интервью может быть пугающим, если вы не готовы. Однако, если вы хорошо подготовлены, ваша уверенность возрастет, и вам может повезти получить новую должность в компании вашей мечты.

Вот некоторые распространенные вопросы интервью по Ruby on Rails и ответы на них.

Оглавление

Что такое Ruby on Rails?

Ruby — это объектно-ориентированный язык программирования с простым синтаксисом.

Ruby on Rails — это среда Ruby, которую разработчики используют для создания веб-приложений.

Обсудить преимущества Ruby on Rails

  • Меньше кода, чем в других языках: с помощью Rails можно добиться многого, написав всего несколько строк кода.
  • Обширная библиотека и драгоценные камни: существует множество библиотек и драгоценных камней для улучшения функциональности приложения Ruby on Rails.
  • Легко учиться: код Ruby on Rails выглядит как простой английский.
  • Большое сообщество.

Обсудить ограничения Ruby on Rails

  • По сравнению с Django и Node.js скорость выполнения и производительность Rails невелики.
  • Ограниченная документация для некоторых из его драгоценных камней.
  • Ruby on Rails самоуверен, что ограничивает гибкость разработчика.

Что такое контроллер Rails?

Это логический центр приложения Ruby on Rails. Контроллер Rails управляет, координирует и отслеживает все взаимодействия между пользователями, моделями и представлениями.

Что такое активная запись Rails?

Active Record — это метод отображения отношения объектов (ORM). Этот слой кода Ruby проходит между логикой кода и вашей базой данных. После написания кода Ruby вы запускаете «миграции», чтобы внести изменения в базу данных.

Что такое MVC и как это работает?

Архитектурный шаблон модель-представление-контроллер (MVC) отделяет бизнес-логику от логики ввода и представления.

  • Модель: обрабатывает всю логику данных в приложении Rails.
  • Просмотр: это часть приложения, которую просматривают пользователи.
  • Контроллер: похож на мост или брокер, который позволяет модели и представлению взаимодействовать.

Что такое контроллер действий в Ruby on Rails?

Контроллер действий — это C в шаблоне MVC. Контроллер действий получает входящие запросы, анализирует запрос и выдает соответствующий результат.

Что такое рейк в Rails?

Rake — это средство запуска задач для Ruby on Rails и приложений Ruby. В Rails есть предопределенные задачи Rake для выполнения тестов, выполнения миграций и создания баз данных.

Что такое доходность в Ruby on Rails?

Yield — это ключевое слово, используемое внутри методов для вызова блока. Нет ограничений на количество аргументов, которые Yield может передать блоку. Блоки в данном случае — это методы без имен, которые можно передавать в качестве дополнительных аргументов другим методам.

Что такое сборщик мусора Ruby on Rails?

Сборка мусора — это процесс управления памятью, используемой компьютерными программами. Ruby on Rails отслеживает, какие объекты используются программой, а не программистом. Таким образом, разработчики могут сосредоточиться на логике и соглашении, вместо того чтобы беспокоиться о распределении памяти.

Какова роль сборки мусора в приложении Rails?

Он освобождает память на вашем компьютере для выполнения других процессов. Сборка мусора достигает этого, удаляя недоступные объекты, которые программа оставляет после выполнения.

Что такое воронка активов?

Конвейер ресурсов в Ruby on Rails предоставляет структуру, которая минимизирует и объединяет ресурсы CSS и JavaScript. Этот фреймворк позволяет автоматически комбинировать все активы в вашем приложении Rails с активами из других драгоценных камней.

Различие между динамическими и статическими лесами

Скаффолдинг — это процесс создания основных частей приложения Rails.

Статические леса явно вводят команду, которая создает необходимые данные в соответствующих полях. Чтобы завершить создание статических шаблонов, необходимо выполнить миграции.

Динамические шаблоны создают содержимое и пользовательские интерфейсы во время выполнения. Этот процесс можно использовать для создания, изменения и удаления действий в приложении Rails.

Что такое библиотека классов?

Библиотека классов включает домены в Ruby on Rails, а программирование потоков и типы данных являются примерами таких доменов. Библиотека классов позволяет разработчику создавать абстракцию кода и, таким образом, использовать одну и ту же логику в разных элементах приложения.

Описать полиморфную ассоциацию в Rails

Полиморфная ассоциация — это тип ассоциации Active Record. Полиморфизм означает, что объект может иметь множество форм. В контексте Rails полиморфная ассоциация позволяет вам определить одну модель, которая может быть связана с другими моделями или принадлежать им, без написания повторного кода.

Что такое интерполяция строк в Ruby?

Интерполяция строк — это добавление заполнителей, ссылающихся на другие значения в строковом объекте. Использование оператора сложения — самый простой способ интерполяции значений.

Рассмотрим этот пример:

name = "Titus"

puts "Hello " + name

Вывод будет;

Привет Титус

Что такое модель объектных отношений (ORM)?

ORM — это мост между базами данных и объектно-ориентированными программами. Отношения объектов в Rails указывают, когда классы сопоставляются с таблицей в вашей базе данных.

Объясните миграцию Rails

Миграции помогают разработчикам удобно вносить изменения в схему базы данных. Таким образом, разработчики могут управлять развертыванием и откатом в схеме базы данных в контролируемой среде. Такой подход не позволяет вам управлять отдельными сценариями SQL для определения ваших изменений.

Объясните соглашение об именах в Rails.

  • Класс и модуль: используйте MixedCase, но без подчеркивания. Имена в классах и модулях начинаются с заглавной буквы.
  • Таблица базы данных: имя таблицы базы данных должно быть во множественном числе и в змеином регистре.
  • Переменные: буквы, объявляющие переменные, должны быть в нижнем регистре и в змеином регистре с разделяющим их символом подчеркивания.
  • Модель: используйте MixedCase, чтобы указать модель и убедиться, что имя указано в единственном числе.
  • Контроллеры: имена контроллеров во множественном числе.

В чем разница между строкой и текстом в Rails?

:string подходит, если вы хотите сохранить короткий текст до 255 символов. Вы можете использовать его с именами, именами пользователей, адресами электронной почты, паролями и титулами.

:текст подходит для длинных описаний. Прекрасные примеры комментариев к сообщению в блоге или описанию магазина.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Объясните подделку межсайтовых запросов (CSRF)

Подделка межсайтовых запросов (CSRF) — это онлайн-атака, при которой злоумышленник перехватывает пользователей, прошедших проверку подлинности, для выполнения определенных действий от их имени.

Rails требует от разработчиков добавления «protect_from_forgery» в ApplicationController, чтобы избежать CSRF-атак. Приложение всегда будет требовать токен CSRF для аутентификации пользователя.

Объясните, что такое миксин в Rails

Mixin предлагает контролируемый способ добавления функциональности в класс. Множество разных примесей составляют класс. Миксины устраняют необходимость множественного наследования.

Какая польза от load и require в Ruby?

require() используется для импорта библиотек/gems

load() используется для выполнения блока кода

В чем разница между обратными вызовами и наблюдателями в Ruby on Rails

Наблюдатели Rails используются, когда метод не связан напрямую с жизненным циклом объекта. Их жизненные циклы велики, и они могут быть присоединены или отсоединены в любое время.

Обратные вызовы можно вызывать только в определенных экземплярах жизненного цикла объекта. Примерами таких экземпляров являются обновления, создание и проверка. Обратные вызовы активны только в течение коротких периодов времени.

Что такое жгуты и приспособления в Ruby?

Фикстуры относятся к способу организации данных, которые вы хотите протестировать. Их можно создавать в файлах с расширением .yml.

Harnesses — это среда или средство запуска тестов для запуска тестов Rails. Светильники устанавливаются в жгутах.

В чем разница между расширением и включением?

«Включить» добавляет метод экземпляра в класс. Таким образом, код будет доступен через методы класса.

«Extend» добавляет методы экземпляра, определенные в модуле, в расширенный класс.

Являются ли гемы и плагины в Ruby одинаковыми?

Gems — это упакованные приложения Ruby, которые необходимо установить. Они универсальны и не зависят от Rails по функциональности.

Плагины в Ruby on Rails развертываются вместе с вашим приложением Rails. Они модифицируют или дополняют основную функциональность Rails.

Кто такие железнодорожные наблюдатели?

Обозреватель Rails предлагает механизм, в котором один объект информирует другие об изменении своего состояния. Он применим в отношениях «один ко многим», когда при изменении одного объекта все зависимые объекты информируются об этом и изменяются автоматически.

Какая команда используется для создания миграции?

bin/rails db:migrate

Покажите, как определить класс, экземпляр и глобальные переменные в Ruby.

  • Переменные класса: могут использоваться в любом месте своего класса. Потомки класса также могут получить к ним доступ. Они начинаются с @@.
  • Переменные экземпляра: используются в локальной области, специфичной для экземпляров созданного объекта. Они могут варьироваться от одного объекта к другому. Они начинаются с @.
  • Глобальные переменные: доступны в любом месте программы. Начинается с $.

Какую роль играет rakefile, доступный в каталоге demo в Ruby?

Rakefile помогает в тестировании и упаковке кода Rails. Файл определяет задачи, которые выполняют тесты или демонстрируют возможности приложения.

Что такое подметальная машина в Rails?

Подметальные машины действуют как терминаторы при кэшировании. Они действуют как полуфильтры и полунаблюдатели и реализуют обратные вызовы для двух ролей. «expire_cache» находит все фрагменты кеша, срок действия которых должен истечь, и очищает их,

Что такое фильтры?

Это методы «до» или «после» выполнения действия контроллера. Такие методы наследуются и будут выполняться с каждым запросом, который получает ваше приложение, если вы установили их в ApplicationController.

Различие между перенаправлением и рендерингом в Rails

Рендеринг: используется для рендеринга шаблона, а затем отправки его клиенту в ответ на запрос. Затем этот шаблон генерирует страницу, которую будет отображать браузер.

Перенаправление: отправляет новый HTTP-запрос на другой URL-адрес. Это действие перенаправляет клиента на другой контроллер или действие. Этот метод удобен, когда вы хотите изменить URL-адрес, который клиенты видят в браузере.

Различие между вызовом super() и супервызовом

  • Super: отправляет сообщение родителю текущего объекта, чтобы вызвать все аргументы вызываемого метода.
  • super(): не отправляет никаких аргументов родителю.

В чем разница между проками и блоками?

  • Блоки: часть кода, заключенная в операторы do/end или фигурные скобки. Они создаются и выполняются каждый раз при вызове метода.
  • Procs: блоки кода, связанные вместе с набором локальных переменных. Этот код может вызываться в разных контекстах и ​​по-прежнему обращаться к переменным.

В чем разница между операторами put и print?

Мы используем puts, когда хотим что-то напечатать на экране. Например,

puts “Hello World!!!”

Печатает Привет Мир!!! на экране

Мы используем print, когда не хотим добавлять новую строку в консоль.

print “Hello World!!!” 

Выводит Hello World!!!, но новая строка не добавляется в консоль.

Что такое динамические искатели?

Динамические средства поиска позволяют разработчикам искать записи в своей базе данных без использования необработанных SQL-запросов. Они используют ключевое слово find_by_, за которым следует атрибут для поиска.

Объясните, как Rail реализует ajax

  • Инициируется триггер, такой как отправка формы или нажатие кнопки.
  • Метод JavaScript отправляет данные триггера обработчику на сервере.
  • Обработчик на стороне сервера работает с данными и отправляет HTML веб-клиенту.
  • Обработчик JavaScript на стороне клиента получает HTML-контент и обновляет текущую страницу.

Объясните Dig, Float и Max

  • С помощью метода Dig вы можете извлекать значения из вложенных хэшей или массивов.
  • Float — это тип данных Ruby, представляющий вещественные числа с точностью до плавающей запятой.
  • Max — это метод, который можно использовать с массивами и хэшами. Он возвращает максимальное значение в коллекции элементов/значений.
array = [2, 9, 4, 7, 3]

maximum = array.max

Консоль выведет 9, так как это самое большое число.

Заключение

Выше приведены некоторые вопросы, которые вы, вероятно, найдете в своем следующем выпуске Ruby on Rails. Если вы разносторонний инженер-программист, проверьте эти вопросы интервью Node.js. Убедитесь, что вы понимаете описание работы инженера Rails, прежде чем идти на следующее собеседование.