Ponad 40 najczęściej zadawanych pytań do wywiadów Ruby on Rails i odpowiedzi [2023]

Ruby on Rails jest prawdopodobnie najbardziej znanym frameworkiem Ruby. Prostota użytkowania, architektura MVC, społeczność i skalowalność to powody jego popularności.

Niektóre z wielkich nazwisk korzystających z Ruby on Rails to GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch i Zendesk, by wymienić tylko kilka.

Jeśli jesteś średniozaawansowanym lub doświadczonym inżynierem Ruby on Rails, zrozumienie natury pytań, które prawdopodobnie znajdziesz na następnej rozmowie kwalifikacyjnej, jest mądrym posunięciem.

Rozmowy kwalifikacyjne mogą być przerażające, jeśli nie jesteś przygotowany. Jeśli jednak jesteś dobrze przygotowany, Twoja pewność siebie wzrośnie i być może będziesz miał szczęście, otrzymując nową rolę w wymarzonej firmie.

Oto kilka typowych pytań podczas rozmowy kwalifikacyjnej Ruby on Rails wraz z odpowiedziami.

Spis treści:

Czym jest Ruby on Rails?

Ruby to zorientowany obiektowo język programowania o prostej składni.

Ruby on Rails to framework Ruby, którego programiści używają do tworzenia aplikacji internetowych.

Omów zalety Ruby on Rails

  • Mniej kodu niż w przypadku innych języków: w Railsach można wiele osiągnąć za pomocą zaledwie kilku linijek kodu.
  • Obszerna biblioteka i klejnoty: Istnieje mnóstwo bibliotek i klejnotów, które poprawiają funkcjonalność aplikacji Ruby on Rails.
  • Łatwy do nauczenia: kod Ruby on Rails wygląda jak zwykły angielski.
  • Duża społeczność.

Omów ograniczenia Ruby on Rails

  • W porównaniu z Django i Node.js, szybkość działania i wydajność Railsów są niskie.
  • Ograniczona dokumentacja niektórych z jego klejnotów.
  • Ruby on Rails jest opiniotwórczy, co ogranicza elastyczność programisty.

Co to jest kontroler Rails?

Jest to logiczne centrum aplikacji Ruby on Rails. Kontroler Rails zarządza, koordynuje i monitoruje wszystkie interakcje między użytkownikami, modelami i widokami.

Co to jest aktywny rekord Railsów?

Active Record to technika mapowania relacji obiektowych (ORM). Ta warstwa kodu Ruby działa między logiką kodu a bazą danych. Po napisaniu kodu Ruby uruchamiasz „migracje”, aby wprowadzić zmiany w bazie danych.

Co to jest MVC i jak działa?

Wzorzec architektoniczny model-widok-kontroler (MVC) oddziela logikę biznesową od logiki wprowadzania i prezentacji.

  • Model: obsługuje całą logikę danych w aplikacji Rails.
  • Widok: jest to część aplikacji, którą przeglądają użytkownicy.
  • Kontroler: jest jak most lub broker, który umożliwia komunikację modelu i widoku.

Co to jest kontroler akcji w Ruby on Rails?

Kontroler akcji to C we wzorcu MVC. Kontroler akcji odbiera przychodzące żądania, nadaje sens żądaniu i generuje odpowiednie dane wyjściowe.

Czym jest rake w Railsach?

Rake to biegacz zadań dla aplikacji Ruby on Rails i Ruby. Railsy mają predefiniowane zadania Rake do przeprowadzania testów, przeprowadzania migracji i tworzenia baz danych.

Czym jest dochód w Ruby on Rails?

Yield to słowo kluczowe używane wewnątrz metod do wywoływania bloku. Nie ma ograniczeń co do liczby argumentów, które Yield może przekazać do bloku. Bloki w tym przypadku są metodami bez nazw, które są akceptowalne jako dodatkowe argumenty dla innych metod.

Co to jest Garbage Collection Ruby on Rails?

Garbage Collection to proces kontrolowania pamięci używanej przez programy komputerowe. Ruby on Rails śledzi, jakich obiektów używa program, a nie programista. Deweloperzy mogą więc skupić się na logice i konwencji, zamiast martwić się o alokację pamięci.

Jaka jest rola Garbage Collection w aplikacji Rails?

Zwalnia pamięć na twoim komputerze do wykonania innych procesów. Wyrzucanie elementów bezużytecznych osiąga to poprzez usuwanie niedostępnych obiektów, które program pozostawia po wykonaniu.

Co to jest potok aktywów?

Potok zasobów w Ruby on Rails zapewnia platformę, która minimalizuje i łączy zasoby CSS i JavaScript. Ta struktura umożliwia automatyczne łączenie wszystkich zasobów w Twojej aplikacji Rails z zasobami z innych klejnotów.

Rozróżnij rusztowania dynamiczne i statyczne

Rusztowanie to proces generowania głównych części aplikacji Rails.

Rusztowanie statyczne jawnie wprowadza polecenie, które generuje wymagane dane w odpowiednich polach. Aby ukończyć tworzenie szkieletów statycznych, należy uruchomić migracje.

Dynamiczne rusztowanie generuje zawartość i interfejsy użytkownika w czasie wykonywania. Ten proces może być używany do tworzenia, modyfikowania i usuwania akcji w aplikacji Rails.

Co to jest biblioteka klas?

Biblioteka klas obejmuje domeny w Ruby on Rails, a programowanie wątkowe i typy danych są przykładami takich domen. Biblioteka klas umożliwia programistom tworzenie abstrakcji kodu, a tym samym używanie tej samej logiki w różnych elementach aplikacji.

Opisz asocjację polimorficzną w Railsach

Asocjacja polimorficzna jest rodzajem asocjacji Active Record. Polimorfizm oznacza, że ​​obiekt może mieć wiele form. W kontekście Railsów, asocjacja polimorficzna pozwala na zdefiniowanie pojedynczego modelu, który może być powiązany lub należeć do innych modeli bez pisania kodu powtarzającego się.

Co to jest interpolacja ciągów znaków w języku Ruby?

Interpolacja ciągów polega na dodawaniu symboli zastępczych odnoszących się do innych wartości w obiekcie łańcuchowym. Użycie operatora dodawania jest najprostszym sposobem interpolacji wartości.

Rozważ ten przykład:

name = "Titus"

puts "Hello " + name

Dane wyjściowe będą;

Witaj Tytusie

Co to jest model relacji obiektowych (ORM)?

ORM to pomost między bazami danych a programami zorientowanymi obiektowo. Relacja obiektowa w Railsach wskazuje, kiedy klasy są mapowane na tabelę w bazie danych.

Wyjaśnij migrację Railsów

Migracje ułatwiają programistom wygodne wprowadzanie zmian w schemacie bazy danych. Deweloperzy mogą zatem zarządzać wdrażaniem i wycofywaniem zmian w schemacie bazy danych w kontrolowanym środowisku. Takie podejście uniemożliwia zarządzanie poszczególnymi skryptami SQL w celu zdefiniowania zmian.

Wyjaśnij konwencję nazewnictwa w Railsach

  • Klasa i moduł: użyj MixedCase, ale nie ma podkreślenia. Nazwy w klasach i modułach zaczynają się od dużej litery.
  • Tabela bazy danych: nazwa tabeli bazy danych powinna być zapisana w liczbie mnogiej i małymi literami.
  • Zmienne: litery deklarujące zmienne powinny być pisane małymi literami i snake_case z podkreśleniem oddzielającym je.
  • Model: użyj MixedCase, aby określić model i upewnić się, że nazwa jest w liczbie pojedynczej.
  • Kontrolery: nazwy kontrolerów są w liczbie mnogiej.

Jaka jest różnica między łańcuchem a tekstem w Railsach?

:string jest odpowiedni, gdy chcesz przechowywać krótki tekst do 255 znaków. Możesz go używać z nazwami, nazwami użytkowników, adresami e-mail, hasłami i tytułami.

:tekst pasuje do długich opisów. Doskonałe przykłady komentarzy pod postem na blogu czy opisem sklepu.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Wyjaśnij fałszerstwo żądań między witrynami (CSRF)

Cross-Site Request Forgery (CSRF) to atak online, w którym atakujący łapie uwierzytelnionych użytkowników w celu wykonania określonych działań w ich imieniu.

Railsy wymagają od programistów dodania „protect_from_forgery” do ApplicationController, aby uniknąć ataków CSRF. Aplikacja zawsze będzie wymagać tokena CSRF do uwierzytelnienia użytkownika.

Wyjaśnij, czym jest mixin w Railsach

Mixin oferuje kontrolowany sposób dodawania funkcjonalności do klasy. Wiele różnych miksów tworzy klasę. Mieszanki eliminują potrzebę posiadania wielu spadków.

Jakie jest zastosowanie obciążenia i wymagania w Ruby?

require() służy do importowania bibliotek/klejnotów

load() służy do wykonania bloku kodu

Jaka jest różnica między wywołaniami zwrotnymi a obserwatorami w Ruby on Rails

Obserwatorzy Rails są wykorzystywani, gdy metoda nie jest bezpośrednio związana z cyklem życia obiektu. Ich cykle życia są długie i można je podłączać lub odłączać w dowolnym momencie.

Wywołania zwrotne można wywoływać tylko w określonych przypadkach cyklu życia obiektu. Przykładami takich wystąpień są aktualizacje, tworzenie i sprawdzanie poprawności. Oddzwaniania są aktywne tylko przez krótki czas.

Czym są uprzęże i mocowania w Ruby?

Urządzenia odnoszą się do sposobu organizowania danych, który chcesz przetestować. Można je tworzyć w plikach z rozszerzeniem .yml.

Harnesses to środowisko lub biegacz testów do uruchamiania testów Rails. Osprzęt jest ustawiony w wiązkach przewodów.

Jaka jest różnica między rozszerzeniem a włączeniem?

„Include” dodaje metodę instancji do klasy. Kod będzie zatem dostępny za pomocą metod klasowych.

„Extend” dodaje metody instancji zdefiniowane w module do klasy rozszerzonej.

Czy klejnoty i wtyczki są takie same w Ruby?

Klejnoty to spakowane aplikacje Ruby, które należy zainstalować. Są uniwersalne i nie zależą od Railsów pod względem funkcjonalności.

Wtyczki w Ruby on Rails są wdrażane razem z Twoją aplikacją Railsową. Modyfikują lub dodają do podstawowej funkcjonalności Rails.

Kim są obserwatorzy kolejowi?

Obserwator Railsów oferuje mechanizm, w którym jeden obiekt informuje inne o zmianie swojego stanu. Ma zastosowanie w relacji jeden-do-wielu, tak że gdy zmienia się jeden obiekt, wszystkie zależne obiekty są informowane i zmieniane automatycznie.

Jakie polecenie jest używane do tworzenia migracji?

bin/rails db:migrate

Pokaż, jak zdefiniować klasę, instancję i zmienne globalne w języku Ruby

  • Zmienne klasy: mogą być używane w dowolnym miejscu w swojej klasie. Potomkowie klas również mają do nich dostęp. Zaczynają się od @@.
  • Zmienne instancji: używane w zakresie lokalnym, który jest specyficzny dla instancji utworzonego obiektu. Mogą się różnić w zależności od obiektu. Zaczynają się od @.
  • Zmienne globalne: dostępne w dowolnym miejscu w programie. Zaczyna się od $.

Jaką rolę pełni rakfile dostępny w katalogu demo w Ruby?

Rakefile pomaga w testowaniu i pakowaniu kodu Rails. Plik definiuje zadania, które wykonują testy lub demonstrują funkcje aplikacji.

Co to jest zamiatarka w Railsach?

Zamiatacze działają jako terminatory w buforowaniu. Działają jako pół-filtry i pół-obserwatorzy oraz implementują wywołania zwrotne dla tych dwóch ról. „expire_cache” wyszukuje wszystkie fragmenty pamięci podręcznej, które muszą wygasnąć i czyści je,

Co to są filtry?

Są to metody „przed” lub „po” wykonaniu akcji kontrolera. Takie metody są dziedziczone i będą uruchamiane z każdym żądaniem otrzymywanym przez Twoją aplikację, o ile ustawisz je w ApplicationController.

Rozróżnij przekierowanie i renderowanie w Railsach

Render: używany do renderowania szablonu, a następnie wysyłania go do klienta w odpowiedzi na żądanie. Ten szablon następnie generuje stronę, którą wyświetli przeglądarka.

Przekierowanie: wysyła nowe żądanie HTTP do innego adresu URL. Ta akcja przekierowuje klienta do innego kontrolera lub akcji. Ta metoda jest przydatna, gdy chcesz zmienić adres URL, który klienci widzą w przeglądarce.

Rozróżnij wywołanie super() i super wywołanie

  • Super: wysyła wiadomość do rodzica bieżącego obiektu, aby wywołać wszystkie argumenty wywołanej metody.
  • super(): nie wysyła żadnych argumentów do rodzica.

Jaka jest różnica między procedurami a blokami?

  • Bloki: Fragment kodu otoczony instrukcjami do/end lub nawiasami klamrowymi. Są one tworzone i wykonywane przy każdym wywołaniu metody.
  • Procs: Bloki kodu powiązane razem z zestawem zmiennych lokalnych. Ten kod można wywoływać w różnych kontekstach i nadal uzyskuje dostęp do zmiennych.

Jaka jest różnica między instrukcjami put i print?

Putów używamy, gdy chcemy coś wydrukować na ekranie. Na przykład,

puts “Hello World!!!”

Wydruki Witaj świecie!!! na ekranie

Używamy print, gdy nie chcemy dodawać nowej linii na konsoli.

print “Hello World!!!” 

Wyprowadza Hello World!!!, ale nowa linia nie zostanie dodana do konsoli.

Co to są wyszukiwarki dynamiczne?

Wyszukiwarki dynamiczne umożliwiają programistom wyszukiwanie rekordów w ich bazach danych bez użycia surowych zapytań SQL. Używają słowa kluczowego find_by_, po którym następuje wyszukiwanie atrybutu.

Wyjaśnij, w jaki sposób Rail implementuje ajax

  • Inicjowany jest wyzwalacz, taki jak przesłanie formularza lub kliknięcie przycisku.
  • Metoda JavaScript wysyła dane wyzwalacza do modułu obsługi na serwerze.
  • Moduł obsługi po stronie serwera działa na danych i wysyła kod HTML do klienta WWW.
  • Program obsługi JavaScript po stronie klienta odbiera zawartość HTML i aktualizuje bieżącą stronę.

Wyjaśnij Dig, Float i Max

  • Za pomocą metody Dig można wyodrębnić wartości z zagnieżdżonych skrótów lub tablic.
  • Float to typ danych Ruby reprezentujący liczby rzeczywiste z precyzją zmiennoprzecinkową.
  • Max to metoda, której można używać z tablicami i haszami. Zwraca maksymalną wartość w zbiorze elementów/wartości.
array = [2, 9, 4, 7, 3]

maximum = array.max

Konsola wyświetli 9, ponieważ jest to największa liczba.

Wniosek

Powyżej znajduje się kilka pytań, które prawdopodobnie znajdziesz w swoim następnym Ruby on Rails. Jeśli jesteś wszechstronnym inżynierem oprogramowania, sprawdź te pytania do rozmowy kwalifikacyjnej dotyczącej środowiska Node.js. Upewnij się, że rozumiesz opis stanowiska inżyniera Rails przed przystąpieniem do następnej rozmowy kwalifikacyjnej.