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 е мнителен, което ограничава гъвкавостта на разработчика.
  Графични процесори от серия RTX 3000 на NVIDIA: Ето какво е новото

Какво е Rails контролер?

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

Какво представлява Active Record на 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 следи какви обекти се използват от програмата, а не от програмиста. По този начин разработчиците могат да се съсредоточат върху логиката и конвенцията, вместо да се тревожат за разпределението на паметта.

Каква е ролята на Garbage Collection в приложението Rails?

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

Какво е тръбопровод на активи?

Asset Pipeline в Ruby on Rails предоставя рамка, която минимизира и обединява CSS и JavaScript активи. Тази рамка позволява всички активи във вашето приложение Rails да бъдат автоматично комбинирани с активи от други скъпоценни камъни.

Правете разлика между динамично и статично скеле

Скелето е процес на генериране на основни части от приложението Rails.

Статичното скеле изрично въвежда команда, която произвежда необходимите данни в съответните полета. За да завършите статичното скеле, трябва да стартирате миграции.

Динамичното скеле генерира съдържание и потребителски интерфейси по време на изпълнение. Този процес може да се използва за създаване, модифициране и изтриване на действия в приложение на Rails.

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

Библиотеката на класове включва домейни в Ruby on Rails, а програмирането на нишки и типовете данни са примери за такива домейни. Библиотеката с класове позволява на разработчика да създава абстракция на код и по този начин да използва същата логика в различни елементи в приложение.

Опишете полиморфната асоциация в Rails

Полиморфната асоциация е вид асоциация на активен запис. Полиморфизмът означава, че един обект може да има много форми. В контекста на Rails, Polymorphic Association ви позволява да дефинирате един модел, който може да бъде свързан с или да принадлежи към други модели, без да пишете повтарящ се код.

  Създавайте албуми от приложението Camera и запазвайте снимки в него [Jailbreak]

Какво е интерполация на низове в 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)

Cross-Site Request Forgery (CSRF) е онлайн атака, при която нападателят улавя удостоверени потребители, за да извърши определени действия от тяхно име.

Rails изискват от разработчиците да добавят „protect_from_forgery“ към ApplicationController, за да избегнат CSRF атаки. Приложението винаги ще изисква CSRF токен за удостоверяване на потребител.

Обяснете какво е mixin в Rails

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

Каква е употребата на load и require в Ruby?

require() се използва за импортиране на библиотеки/скъпоценни камъни

load() се използва за изпълнение на блок от код

Каква е разликата между обратните извиквания и наблюдателите в Ruby on Rails

Rails наблюдателите се използват, когато даден метод не е пряко свързан с жизнения цикъл на даден обект. Техният жизнен цикъл е голям и могат да бъдат прикрепени или откачени по всяко време.

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

  Как да деактивирате регулирането на мощността на процесора Dell за неизвестни захранващи адаптери

Какво представляват коланите и приспособленията в Ruby?

Приспособленията се отнасят до начин за организиране на данни, които искате да тествате. Те могат да бъдат създадени във файлове, които завършват с разширение .yml.

Harnesses е среда или тестов инструмент за провеждане на Rails тестове. Приспособленията са монтирани в Harnesses.

Каква е разликата между разширяване и включване?

„Включване“ добавя метод на екземпляр към клас. По този начин кодът ще бъде достъпен чрез методите на класа.

„Разширяване“ добавя методи на екземпляр, дефинирани в модула, към разширения клас.

Скъпоценните камъни и плъгините еднакви ли са в Ruby?

Gems са пакетирани Ruby приложения, които трябва да бъдат инсталирани. Те са с общо предназначение и не зависят от Rails за функционалност.

Добавките в Ruby on Rails се внедряват заедно с вашето Rails приложение. Те променят или добавят към основната функционалност на Rails.

Какво представляват железопътните наблюдатели?

Rails наблюдателят предлага механизъм, при който един обект информира останалите, когато състоянието му се промени. Приложимо е във връзка „един към много“, така че когато един обект се промени, всички зависими обекти се информират и променят автоматично.

Каква команда се използва за създаване на миграция?

bin/rails db:migrate

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

  • Променливи на класа: Могат да се използват навсякъде в техния клас. Потомците на класа също имат достъп до тях. Те започват с @@.
  • Променливи на екземпляр: Използва се в локалния обхват, който е специфичен за екземплярите на създадения обект. Те могат да варират от един обект до друг. Те започват с @.
  • Глобални променливи: Достъпни навсякъде в програмата. Започва с $.

Каква роля играе rakefile, наличен в демо директорията в Ruby?

Rakefile помага при тестването и опаковането на кода на Rails. Файлът дефинира задачите, които извършват тестове или демонстрират функциите на приложението.

Какво е sweeper в Rails?

Метачите действат като терминатори в кеширането. Те действат като полуфилтри и полунаблюдатели и прилагат обратни извиквания за двете роли. „expire_cache“ намира всички фрагменти от кеша, които трябва да изтекат и ги изчиства,

Какво представляват филтрите?

Това са методи „преди“ или „след“ изпълнение на действие на контролера. Такива методи се наследяват и ще се изпълняват с всяка заявка, която вашето приложение получава, стига да сте ги задали в ApplicationController.

Правете разлика между пренасочване и изобразяване в Rails

Изобразяване: използва се за изобразяване на шаблон и след това изпращането му на клиента в отговор на заявката. След това този шаблон генерира страницата, която браузърът ще покаже.

Пренасочване: изпраща нова HTTP заявка към различен URL адрес. Това действие пренасочва клиента към друг контролер или действие. Този метод е полезен, когато искате да промените URL адреса, който клиентите виждат в браузъра.

Правете разлика между извикването на super() и super call

  • Супер: изпраща съобщение до родителя на текущия обект за извикване на всички аргументи на извикания метод.
  • 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 инженер, преди да отидете на следващото си интервю.