40+ поширених запитань і відповідей на співбесіді Ruby on Rails [2023]

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 є самовпевненим, що обмежує гнучкість розробника.
  Перевірте свій слух за допомогою iPhone та тихої кімнати

Що таке контролер 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 для виконання тестів, запуску міграцій і створення баз даних.

Що таке yield у Ruby on Rails?

Yield — це ключове слово, яке використовується всередині методів для виклику блоку. Немає обмежень на кількість аргументів, які Yield може передати в блок. У цьому випадку блоки — це методи без імен, які можна передавати як додаткові аргументи іншим методам.

Що таке збірка сміття Ruby on Rails?

Збір сміття — це процес керування пам’яттю, що використовується комп’ютерними програмами. Ruby on Rails відстежує, які об’єкти використовує програма, а не програміст. Таким чином, розробники можуть зосередитися на логіці та конвенції замість того, щоб турбуватися про розподіл пам’яті.

Яка роль Garbage Collection у додатку Rails?

Це звільняє пам’ять на вашому комп’ютері для виконання інших процесів. Збирання сміття досягає цього шляхом видалення недоступних об’єктів, які програма залишає після виконання.

Що таке конвеєр активів?

Конвеєр ресурсів у Ruby on Rails забезпечує структуру, яка мінімізує та об’єднує ресурси CSS і JavaScript. Цей фреймворк дозволяє автоматично поєднувати всі активи у вашому додатку Rails з ресурсами з інших дорогоцінних каменів.

Розрізняйте динамічні та статичні риштування

Скаффолдинг — це процес створення основних частин програми Rails.

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

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

Що таке бібліотека класу?

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

  5 найкращих класичних кооперативних ігор із сучасними рімейками

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

Поліморфна асоціація — це тип асоціації активних записів. Поліморфізм означає, що об’єкт може мати багато форм. У контексті Rails Polymorphic Association дозволяє вам визначити одну модель, яка може бути пов’язана з іншими моделями або належати до них без написання повторного коду.

Що таке інтерполяція рядків у Ruby?

Інтерполяція рядків — це додавання заповнювачів, що посилаються на інші значення в об’єкті рядка. Використання оператора додавання є найпростішим способом інтерполяції значень.

Розглянемо цей приклад:

name = "Titus"

puts "Hello " + name

Вихід буде:

Привіт Тит

Що таке модель зв’язку об’єктів (ORM)?

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

Поясніть міграцію Rails

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

Поясніть правила іменування в Rails

  • Клас і модуль: використовуйте MixedCase, але без підкреслення. Імена в класах і модулях починаються з великої літери.
  • Таблиця бази даних: назва таблиці бази даних має бути у множині та регістрі.
  • Змінні: літери, що оголошують змінні, мають бути малими та snake_case із підкресленням, що їх розділяє.
  • Модель: використовуйте MixedCase, щоб указати модель і переконатися, що назва введена в однині.
  • Контролери: назви контролерів у множині.

Яка різниця між рядком і текстом у Rails?

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

:text підходить для довгих описів. Ідеальні приклади коментарів до публікації в блозі або опису магазину.

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 для автентифікації користувача.

Поясніть, що таке mixin у Rails

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

Яке використання load і require у Ruby?

require() використовується для імпорту бібліотек/коштовних каменів

load() використовується для виконання блоку коду

Яка різниця між зворотними викликами та спостерігачами в Ruby on Rails

Спостерігачі Rails використовуються, коли метод безпосередньо не пов’язаний із життєвим циклом об’єкта. Їхній життєвий цикл великий, і їх можна будь-коли приєднати або від’єднати.

Зворотні виклики можна викликати лише в певних випадках життєвого циклу об’єкта. Прикладами таких випадків є оновлення, створення та перевірка. Зворотні виклики активні лише протягом короткого часу.

  Як зробити презентацію в Google Meet

Що таке джгути та пристосування в Ruby?

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

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

Яка різниця між розширенням і включенням?

«Include» додає метод екземпляра до класу. Таким чином код буде доступний через методи класу.

«Extend» додає методи примірника, визначені в модулі, до розширеного класу.

Чи однакові gems і плагіни в Ruby?

Gems — це упаковані програми Ruby, які потрібно інсталювати. Вони є універсальними та не залежать від Rails для функціональності.

Плагіни Ruby on Rails розгортаються разом із вашим додатком Rails. Вони змінюють або доповнюють основні функції Rails.

Що таке залізничні спостерігачі?

Rails Observer пропонує механізм, за допомогою якого один об’єкт повідомляє іншим, коли його стан змінюється. Він застосовний у відносинах «один-до-багатьох», так що коли один об’єкт змінюється, усі залежні об’єкти інформуються та змінюються автоматично.

Яка команда використовується для створення міграції?

bin/rails db:migrate

Покажіть, як визначити клас, екземпляр і глобальні змінні в Ruby

  • Змінні класу: можна використовувати будь-де в межах класу. Нащадки класу також можуть отримати до них доступ. Вони починаються з @@.
  • Змінні екземпляра: використовуються в локальній області, яка є специфічною для екземплярів створеного об’єкта. Вони можуть відрізнятися від одного об’єкта до іншого. Вони починаються з @.
  • Глобальні змінні: доступні будь-де в програмі. Починається з $.

Яку роль відіграє rakefile, доступний у каталозі демо-версії в Ruby?

Rakefile допомагає з тестуванням і упаковкою коду Rails. Файл визначає завдання, які виконують тести або демонструють функції програми.

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

Прибиральники діють як термінатори в кешуванні. Вони діють як напівфільтри та напівспостерігачі та реалізують зворотні виклики для двох ролей. ‘expire_cache’ знаходить усі фрагменти кешу, термін дії яких має закінчитися, і очищає їх,

Що таке фільтри?

Це методи «до» або «після» виконання дії контролера. Такі методи успадковуються та запускатимуться з кожним запитом, який отримує ваша програма, доки ви встановили їх у ApplicationController.

Розрізняйте перенаправлення та візуалізацію в Rails

Відображати: використовується для відтворення шаблону та надсилання його клієнту у відповідь на запит. Потім цей шаблон створює сторінку, яку відображатиме браузер.

Перенаправлення: надсилає новий HTTP-запит на іншу URL-адресу. Ця дія перенаправляє клієнта до іншого контролера або дії. Цей метод стане в нагоді, якщо ви хочете змінити URL-адресу, яку клієнти бачать у браузері.

Розрізняйте виклик super() і super call

  • Super: надсилає повідомлення батьківському поточному об’єкту, щоб викликати всі аргументи викликаного методу.
  • super(): не надсилає жодних аргументів батьківському.

Яка різниця між Procs і Blocks?

  • Блоки: фрагмент коду, оточений операторами do/end або фігурними дужками. Вони створюються та виконуються під час кожного виклику методу.
  • Процедури: блоки коду, пов’язані з набором локальних змінних. Цей код можна викликати в різних контекстах, і він все одно отримує доступ до змінних.

Яка різниця між операторами put і print?

Ми використовуємо puts, коли хочемо надрукувати щось на екрані. Наприклад,

puts “Hello World!!!”

Друкує 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.