Peste 40 de întrebări și răspunsuri la interviu Ruby on Rails frecvente [2023]

Ruby on Rails este probabil cel mai faimos cadru Ruby. Simplitatea sa de utilizare, arhitectura MVC, comunitatea și scalabilitatea sunt motivele popularității sale.

Unele dintre marile nume care folosesc Ruby on Rails sunt GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch și Zendesk, ca să menționăm câteva.

Dacă sunteți un inginer Ruby on Rails de nivel intermediar sau calificat, înțelegerea naturii întrebărilor pe care probabil le veți găsi la următorul interviu este o mișcare inteligentă.

Interviurile pot fi înfricoșătoare dacă nu ești pregătit. Cu toate acestea, dacă ești bine pregătit, încrederea ta va crește și s-ar putea să ai norocul să obții un nou rol în compania de vis.

Acestea sunt câteva întrebări frecvente de interviu Ruby on Rails și răspunsurile lor.

Cuprins

Ce este Ruby on Rails?

Ruby este un limbaj de programare orientat pe obiecte cu o sintaxă simplă.

Ruby on Rails este un cadru Ruby pe care dezvoltatorii îl folosesc pentru a crea aplicații web.

Discutați despre avantajele Ruby on Rails

  • Mai puțin cod decât alte limbi: puteți realiza multe cu doar câteva linii de cod cu Rails.
  • Bibliotecă extinsă și pietre prețioase: există tone de biblioteci și pietre prețioase pentru a îmbunătăți funcționalitatea unei aplicații Ruby on Rails.
  • Ușor de învățat: codul Ruby on Rails arată ca o engleză simplă.
  • O comunitate mare.

Discutați limitele Ruby on Rails

  • În comparație cu Django și Node.js, viteza de rulare și performanța Rails sunt scăzute.
  • Documentație limitată pentru unele dintre pietrele sale.
  • Ruby on Rails are opinie, ceea ce limitează flexibilitatea unui dezvoltator.
  Cum să faci o captură de ecran pe iPhone X

Ce este un controler Rails?

Este centrul logic al unei aplicații Ruby on Rails. Controlerul Rails gestionează, coordonează și monitorizează toate interacțiunile dintre utilizatori, modele și vederi.

Care este înregistrarea activă a Rails?

Active Record este o tehnică de cartografiere a relațiilor de obiecte (ORM). Acest strat de cod Ruby rulează între logica codului și baza de date. După ce scrieți codul Ruby, rulați „migrații” pentru a face modificări în baza de date.

Ce este MVC și cum funcționează?

Modelul arhitectural model-view-controller (MVC) separă logica de afaceri de logica de intrare și de prezentare.

  • Model: gestionează toată logica datelor într-o aplicație Rails.
  • Vizualizare: aceasta face parte din aplicația pe care o vizualizează utilizatorii.
  • Controller: este ca o punte sau un broker care permite modelului și vederii să comunice.

Ce este un controler de acțiune în Ruby on Rails?

Controlerul de acțiune este C în modelul MVC. Action Controller primește cererile primite, dă sens cererii și produce rezultatul corespunzător.

Ce este rake in Rails?

Rake este un rulant de sarcini pentru aplicațiile Ruby on Rails și Ruby. Rails au sarcini Rake predefinite pentru efectuarea de teste, migrarea și crearea bazelor de date.

Ce este randamentul în Ruby on Rails?

Yield este un cuvânt cheie folosit în cadrul metodelor pentru a apela un bloc. Nu există nicio limitare a numărului de argumente pe care Yield le poate transmite blocului. Blocurile, în acest caz, sunt metode fără nume care sunt acceptabile ca argumente suplimentare pentru alte metode.

Ce este Garbage Collection Ruby on Rails?

Garbage Collection este procesul de control al memoriei utilizate de programele de calculator. Ruby on Rails ține evidența ce obiecte sunt folosite de program, mai degrabă decât de programator. Dezvoltatorii se pot concentra astfel pe logică și convenție în loc să se preocupe de alocarea memoriei.

Care este rolul Garbage Collection în aplicația Rails?

Eliberează memorie pe mașina dvs. pentru ca alte procese să poată fi executate. Colectarea gunoiului realizează acest lucru prin eliminarea obiectelor inaccesibile pe care un program le lasă după execuție.

Ce este o conductă de active?

Un Asset Pipeline în Ruby on Rails oferă un cadru care minimizează și concatenează activele CSS și JavaScript. Acest cadru permite ca toate activele din aplicația dvs. Rails să fie combinate automat cu activele din alte pietre prețioase.

Faceți diferența între schelele dinamice și statice

Schela este procesul de generare a părților majore ale aplicației șinelor.

Schela statică introduce în mod explicit o comandă care produce datele necesare în câmpurile respective. Pentru a finaliza schelele statice, trebuie să rulați migrarea.

Schelele dinamice generează conținut și interfețe cu utilizatorul în timpul rulării. Acest proces poate fi folosit pentru a crea, modifica și șterge acțiuni într-o aplicație Rails.

Ce este o bibliotecă de clasă?

O bibliotecă de clase cuprinde domenii în Ruby on Rails, iar programarea firelor și tipurile de date sunt exemple de astfel de domenii. O bibliotecă de clase permite unui dezvoltator să creeze abstracția codului și, astfel, să folosească aceeași logică în diferite elemente dintr-o aplicație.

  Cum să lansați automat comenzile rapide atunci când deschideți o aplicație pe iPhone sau iPad

Descrieți asocierea polimorfă în șine

Polymorphic Association este un tip de Active Record Association. Polimorfismul înseamnă că un obiect poate avea mai multe forme. În contextul șinelor, Polymorphic Association vă permite să definiți un singur model care poate fi asociat sau aparține altor modele fără a scrie un cod repetat.

Ce este interpolarea șirurilor în Ruby?

Interpolarea șirurilor este adăugarea de substituenți care fac referire la alte valori dintr-un obiect șir. Utilizarea operatorului de adăugare este cea mai simplă modalitate de a interpola valori.

Luați în considerare acest exemplu:

name = "Titus"

puts "Hello " + name

Ieșirea va fi;

Salut Titus

Ce este modelul de relații cu obiecte (ORM)?

Un ORM este o punte între bazele de date și programele orientate pe obiecte. O relație de obiect, în Rails, indică când clasele sunt mapate la un tabel din baza de date.

Explicați migrarea șinelor

Migrațiile ajută dezvoltatorii să modifice o schemă de baze de date în mod convenabil. Dezvoltatorii pot gestiona astfel lansarea și rollback-ul în schema bazei de date într-un mediu controlat. Această abordare vă împiedică să gestionați scripturi SQL individuale pentru a vă defini modificările.

Explicați convenția de denumire în Rails

  • Clasă și modul: utilizați MixedCase, dar nu aveți un caracter de subliniere. Numele din clase și module încep cu o literă mare.
  • Tabelul bazei de date: numele unui tabel al bazei de date trebuie să fie la plural și tip șarpe.
  • Variabile: literele care declară variabile ar trebui să fie cu litere mici și snake_case cu o liniuță de subliniere care le separă.
  • Model: utilizați MixedCase pentru a specifica un model și pentru a vă asigura că numele este la singular.
  • Controlere: numele controlerului sunt pluralizate.

Care este diferența dintre șir și text în Rails?

:string este potrivit atunci când doriți să stocați text scurt cu până la 255 de caractere. Îl puteți folosi cu nume, nume de utilizator, e-mailuri, parole și titluri.

:textul se potrivește descrierilor lungi. Exemple perfecte de comentarii la o postare de blog sau o descriere a unui magazin.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Explicați falsificarea cererilor pe mai multe site-uri (CSRF)

Cross-Site Request Forgery (CSRF) este un atac online în care atacatorul prinde utilizatorii autentificați pentru a efectua anumite acțiuni în numele lor.

Rails solicită dezvoltatorilor să adauge „protect_from_forgery” la ApplicationController pentru a evita atacurile CSRF. Aplicația va necesita întotdeauna un token CSRF pentru a autentifica un utilizator.

Explicați ce este mixin-ul în Rails

Un mixin oferă o modalitate controlată de a adăuga funcționalități la o clasă. Multe mix-uri diferite alcătuiesc o clasă. Mixins eradica nevoia de a avea mai multe mosteniri.

La ce folosește încărcarea și necesitatea în Ruby?

require( ) este folosit pentru a importa biblioteci/gemuri

load() este folosit pentru a executa un bloc de cod

Care este diferența dintre apeluri inverse și observatori în Ruby on Rails

Observatorii șinelor sunt utilizați atunci când o metodă nu este direct legată de ciclul de viață al unui obiect. Ciclurile lor de viață sunt mari și pot fi atașate sau detașate în orice moment.

Apelurile inverse pot fi apelate numai în momente specifice din ciclul de viață al unui obiect. Exemple de astfel de cazuri sunt actualizările, crearea și validarea. Reapelurile sunt active doar pentru perioade scurte.

  Cum să trimiteți mesaje text de pe Chromebookul dvs

Ce sunt hamurile și dispozitivele de fixare în Ruby?

Fixările se referă la un mod de organizare a datelor pe care doriți să le testați. Ele pot fi create în fișiere care se termină cu extensia .yml.

Harnesses este mediul sau runnerul de testare pentru rularea testelor Rails. Fixările sunt instalate în Harnașamente.

Care este diferența dintre extinde și include?

„Include” adaugă o metodă de instanță la o clasă. Codul va fi astfel accesibil prin metode de clasă.

„Extend” adaugă metode de instanță definite în modul la clasa extinsă.

Sunt pietrele prețioase și pluginurile la fel în Ruby?

Gems sunt aplicații Ruby ambalate care trebuie instalate. Sunt de uz general și nu depind de șine pentru funcționalitate.

Pluginurile în Ruby on Rails sunt implementate împreună cu aplicația dvs. Rails. Ele modifică sau adaugă la funcționalitatea de bază a Rails.

Ce sunt observatorii feroviari?

Observatorul Rails oferă un mecanism prin care un obiect îi informează pe ceilalți când starea lui se schimbă. Este aplicabil într-o relație unu-la-mulți, astfel încât atunci când un obiect se schimbă, toate obiectele dependente sunt informate și modificate automat.

Ce comandă este folosită pentru a crea o migrare?

bin/rails db:migrate

Arată cum să definești clasă, instanță și variabile globale în Ruby

  • Variabile de clasă: pot fi utilizate oriunde în cadrul clasei lor. De asemenea, descendenții clasei le pot accesa. Încep cu @@.
  • Variabile de instanță: utilizate în domeniul local, care este specific instanelor obiectului creat. Ele pot varia de la un obiect la altul. Încep cu @.
  • Variabile globale: accesibile oriunde în cadrul programului. Începe cu $.

Ce rol joacă rakefile disponibil în directorul demo din Ruby?

Rakefile ajută la testarea și ambalarea codului Rails. Fișierul definește sarcinile care efectuează teste sau demonstrează caracteristicile aplicației.

Ce este o măturătoare în Rails?

Sweeper-urile acționează ca terminatori în cache. Acţionează ca semifiltre şi semiobservatori şi implementează apeluri pentru cele două roluri. „expire_cache” găsește toate fragmentele de cache care trebuie să fie expirate și le șterge,

Ce sunt filtrele?

Acestea sunt metode „înainte” sau „după” acțiunea unui controler este executată. Astfel de metode sunt moștenite și vor rula cu fiecare solicitare pe care o primește aplicația dvs., atâta timp cât le-ați setat în ApplicationController.

Faceți diferența între redirecționare și randare în Rails

Redare: folosit pentru a reda un șablon și apoi pentru a-l trimite clientului ca răspuns la cerere. Acest șablon generează apoi pagina pe care browserul o va afișa.

Redirecționare: trimite o nouă solicitare HTTP la o adresă URL diferită. Această acțiune redirecționează clientul către un controler sau o acțiune diferită. Această metodă este utilă atunci când doriți să schimbați URL-ul pe care clienții îl văd în browser.

Faceți diferența între apelarea super() și super call

  • Super: trimite un mesaj părintelui obiectului curent pentru a invoca toate argumentele metodei invocate.
  • super(): nu trimite niciun argument părintelui.

Care este diferența dintre Procs și Blocks?

  • Blocuri: o bucată de cod înconjurată de instrucțiuni do/end sau acolade. Ele sunt create și executate de fiecare dată când metoda este apelată.
  • Procs: Blocuri de cod legate împreună la un set de variabile locale. Acest cod poate fi apelat în diferite contexte și încă accesează variabilele.

Care este diferența dintre declarațiile put și print?

Folosim puturi când vrem să imprimăm ceva pe ecran. De exemplu,

puts “Hello World!!!”

Printuri Bună lume!!! pe ecran

Folosim print când nu vrem să adăugăm o linie nouă pe consolă.

print “Hello World!!!” 

Iese Hello World!!!, dar o linie nouă nu va fi adăugată la consolă.

Ce sunt găsitorii dinamici?

Găsitorii dinamici permit dezvoltatorilor să caute înregistrări în baza lor de date fără a utiliza interogări SQL brute. Ei folosesc cuvântul cheie find_by_, care este apoi urmat de atributul pentru a fi căutat.

Explicați cum implementează Rail ajax

  • Este inițiat un declanșator, cum ar fi trimiterea unui formular sau clic pe un buton.
  • Metoda JavaScript trimite datele de declanșare către un handler din server.
  • Managerul de pe partea serverului lucrează asupra datelor și trimite HTML către clientul web.
  • Managerul JavaScript din partea clientului primește conținut HTML și actualizează pagina curentă.

Explicați Dig, Float și Max

  • Cu metoda Dig, puteți extrage valori din hash-uri sau matrice imbricate.
  • Float este un tip de date Ruby care reprezintă numere reale cu precizie în virgulă mobilă.
  • Max este o metodă care poate fi utilizată cu matrice și hashuri. Returnează valoarea maximă dintr-o colecție de articole/valori.
array = [2, 9, 4, 7, 3]

maximum = array.max

Consola va scoate 9 deoarece este cel mai mare număr.

Concluzie

Mai sus sunt câteva întrebări pe care probabil le vei găsi în următorul tău Ruby on Rails. Dacă sunteți un inginer software complet, verificați aceste întrebări de interviu Node.js. Asigurați-vă că înțelegeți descrierea postului unui inginer Rails înainte de a participa la următorul interviu.