Що питають на співбесіді у новачків Ruby on Rails Developer

Що питають на співбесіді у новачків Ruby on Rails Developer

Що робить людина яка шукає роботу? Звичайно, гуглить відповіді на запитання які їй поставлять на співбесіді. Досить гасати по онлайну!

Разом із розробником Ruby on Rails від Codica Іваном, ми підготували докладний гайд — які питання вам точно поставлять на інтервʼю.

Отже, погарцювали:

Які типи даних підтримує Ruby?

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

Ruby підтримує:

  1. Числа:
  • Integer: представляють цілочисельні значення
  • Float: показують числа з рухомою крапкою
  1. String: тут послідовність символів узято в лапки. Наприклад, "Hello, world!".
  2. Symbol: являють собою літерали, які використовуються для імен та ідентифікаторів. На відміну від рядків, символи є незмінними. Наприклад, :name.
  3. Boolean: являє собою логічне значення і може бути або істиною (true), або хибою (false).
  4. Array: представляють упорядковану колекцію елементів. Елементи можуть бути будь-якого типу даних та зберігаються під індексами. Наприклад, [1, "два", true].
  5. Hash: показують колекцію пар "ключ-значення". Ключі та значення можуть бути будь-якого типу даних. Наприклад, { ім’я: "Джон", вік: 30 }.
  6. Nil: це значення, яке свідчить про відсутність якогось об'єкта чи значення. Воно є єдиним екземпляром класу NilClass.

Крім основних типів даних, Ruby також надає додаткові класи та структури даних, такі як Range, DateTime, Regexp та інші.

Що таке клас у Ruby? Як оголосити клас та створити його об’єкт?

Оголошення класу в Ruby здійснюється за допомогою ключового слова class, за яким слідує ім'я класу, у форматі CamelCase. Усередині блоку класу визначаються змінні та методи, що належать цьому класу.

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

Якщо в класі визначено конструктори (методи initialize), вони можуть приймати аргументи, які передаватимуться під час створення об'єкта.

Класи в Ruby можуть мати методи, змінні екземпляра, змінні класу та інші особливості, що дозволяють визначити стан та поведінку об'єктів, створених на їх основі.

Що таке http? Які методи http запиту ви знаєте і як вони пов’язані з методами контроллера в rails?

  • HTTP - це протокол передачі гіпертексту, який використовується для обміну даними між клієнтом (наприклад, веб-браузером) та сервером в мережі Інтернет.

  • HTTP визначає способи запиту та відповіді на сервері, встановлює правила та структуру для взаємодії між клієнтом та сервером.

  • HTTP-методи визначають тип операції, яку клієнт хоче виконати на сервері.

Одні з найпоширеніших методів це:

  1. GET: Використовується для отримання ресурсу чи інформації від сервера. Цей метод має бути ідемпотентним, тобто не мати побічних ефектів на сервері.
  2. POST: Застосовується для надсилання даних на сервер. Його часто використовують для створення нових ресурсів у базах даних. Дані надсилаються в тілі запиту, а не в URL, що відрізняє POST-запити від GET-запитів.
  3. PUT: Вживається для оновлення наявного ресурсу на сервері. Якщо ресурс не існує, може бути створено новий.
  4. DELETE: Використовується для видалення ресурсу на сервері.
  5. PATCH: Застосовується для часткового оновлення ресурсу на сервері.

Кожен HTTP-метод зазвичай пов'язується з відповідним методом контроллера в Rails.

Які принципи обмежень REST архітектури ви знаєте?

REST (Representational State Transfer) є архітектурним стилем для розробки розподілених систем. REST використовує набір обмежень, щоб забезпечити простоту, масштабованість та надійність взаємодії між клієнтом та сервером.

Ось деякі з принципів обмежень REST:

  • Клієнт-серверна модель: Система розділена на клієнти та сервери. Вони можуть розвиватися незалежно один від одного та взаємодіяти за допомогою стандартизованих інтерфейсів.
  • Без стану (Stateless): Кожен запит клієнта до сервера повинен мати всю необхідну інформацію для виконання запиту. Сервер не повинен зберігати стан клієнта між запитами. Стан клієнта може зберігатися на стороні клієнта або передаватися з кожним запитом.
  • Кешування (Caching): Сервер може позначати відповіді як кешовані або некешовані. Клієнти можуть кешувати відповіді сервера для повторного використання та зменшення навантаження на сервер.
  • Єдиний інтерфейс (Uniform Interface): Інтерфейс між клієнтом та сервером має бути єдиним та стандартизованим. Це включає використання ідентифікаторів ресурсів, стандартних методів HTTP (GET, POST, PUT, DELETE) і метаданих, що передаються із запитами та відповідями.
  • Шари (Layered System): Систему може бути складено з шарів, де кожен шар надає абстракцію та функціональність для шарів вище. Клієнт не повинен знати про деталі реалізації шарів нижче.
  • Код на вимогу (Code on Demand) - необов'язкове обмеження, яке дозволяє серверу надсилати виконуваний код клієнту під час виконання. Це розширює функціональність клієнта без необхідності зміни самого клієнта.

Важливо знати, що REST API, який активно використовується в Rails - це API, цілком побудований відповідно до принципів REST.

Що таке клієнт-серверна архітектура? Які переваги та недоліки вона має?

Клієнт-серверна архітектура – це модель організації розподілених систем, у якій функціональність розділена між клієнтами та серверами. Клієнти та сервери взаємодіють один з одним за допомогою мережевого з'єднання, де клієнти надсилають запити серверам, а вони обробляють запити і надсилають зворотні відповіді клієнтам.

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

Переваги клієнт-серверної архітектури:

  • Розподіл ресурсів: Клієнти і сервери можуть бути розміщені на різних фізичних пристроях або в різних мережах. Це дозволяє ефективно використовувати ресурси та покращити масштабованість системи.
  • Легкість у розробці та обслуговуванні: Поділ функціональності між клієнтом та сервером спрощує розробку та обслуговування системи. Клієнти і сервери можуть бути розроблені та супроводжуватися незалежно один від одного, що спрощує оновлення та масштабування системи.
  • Централізоване управління: Сервер надає єдине та централізоване джерело даних та функціональності для клієнтів. Це спрощує управління даними та забезпечує узгодженість інформації.

І деякі недоліки клієнт-серверної архітектури:

  • Мережева залежність: Взаємодія між клієнтами та серверами відбувається через мережеве з'єднання. При проблемах з мережею або відмові сервера система може стикнутися з проблемами доступності та продуктивності.
  • Єдина точка відмови: Якщо сервер не працює належним чином або недоступний, клієнти можуть не мати доступу до необхідних ресурсів і функціональності.
  • Безпека: Оскільки клієнти та сервери обмінюються даними через мережу, це створює потенційні вразливості безпеки. Захист даних, забезпечення безпеки комунікації між клієнтами та серверами потребують додаткових заходів та ресурсів.

Загалом клієнт-серверна архітектура є широко використовуваним та ефективним підходом для розробки розподілених систем. Однак при проєктуванні та розробці системи слід враховувати її недоліки та особливості, щоб забезпечити надійність, безпеку та ефективність роботи.

Це був основний список питань, який вам точно поставлять на інтерв'ю.

Якщо хочете це прослухати ще раз — ми записали щей пояснююче відео

А я бажаю вам добре підготуватися до співбесіди та отримати оффер!

Буду дуже вдячна якщо натиснете вподобайку під відео! Всім гарного дня!

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Наталія Клименко Codica 16
Співзасновник IT компанії Codica. Маю досвід в IT вже майже 15 років. Пройшла шлях від рекрутера до HR-директора та співвласника rомпанії.

А я вам бажаю продуктивного та спокійного дня!

Слава Україні! Слава ЗСУ!

 

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація