40+ ofte stillede Ruby on Rails-interviewspørgsmål og -svar [2023]

Ruby on Rails er nok den mest berømte Ruby-ramme. Dens enkelhed i brug, MVC-arkitektur, fællesskab og skalerbarhed er årsagerne til dens popularitet.

Nogle af de store navne, der bruger Ruby on Rails, er GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch og Zendesk, for at nævne nogle få.

Hvis du er en mellemliggende eller dygtig Ruby on Rails-ingeniør, er det et smart træk at forstå karakteren af ​​de spørgsmål, du sandsynligvis vil finde i dit næste interview.

Samtaler kan være skræmmende, hvis du er uforberedt. Men hvis du er godt forberedt, vil din selvtillid skyde op, og du kan være heldig at få en ny rolle i din drømmevirksomhed.

Dette er nogle almindelige Ruby on Rails-interviewspørgsmål og deres svar.

Indholdsfortegnelse

Hvad er Ruby on Rails?

Ruby er et objektorienteret programmeringssprog med en simpel syntaks.

Ruby on Rails er en Ruby-ramme, som udviklere bruger til at skabe webapplikationer.

Diskuter fordelene ved Ruby on Rails

  • Mindre kode end andre sprog: Du kan opnå meget med blot et par linjer kode med Rails.
  • Omfattende bibliotek og ædelstene: Der findes tonsvis af biblioteker og ædelstene for at forbedre funktionaliteten af ​​en Ruby on Rails-app.
  • Let at lære: Ruby on Rails’ kode ligner almindeligt engelsk.
  • Et stort fællesskab.

Diskuter grænserne for Ruby on Rails

  • Sammenlignet med Django og Node.js er Rails’ køretidshastighed og ydeevne lav.
  • Begrænset dokumentation for nogle af dens ædelstene.
  • Ruby on Rails er selvmodsigende, hvilket begrænser en udviklers fleksibilitet.
  Sådan får du en VMware (VCP)-certificering: Komplet vejledning

Hvad er en Rails controller?

Det er det logiske centrum for en Ruby on Rails-applikation. Rails controller styrer, koordinerer og overvåger alle interaktioner mellem brugere, modeller og visninger.

Hvad er Rails’ Active Record?

Active Record er en ORM-teknik (Object Relation Mapping). Dette lag af Ruby-kode kører mellem kodelogikken og din database. Efter du har skrevet Ruby-kode, kører du ‘migrering’ for at foretage ændringer i din database.

Hvad er MVC, og hvordan virker det?

Det arkitektoniske model-view-controller (MVC) mønster adskiller forretningslogikken fra input- og præsentationslogikken.

  • Model: håndterer al datalogikken i en Rails-app.
  • Vis: dette er en del af den applikation, som brugerne ser.
  • Controller: er som en bro eller mægler, der tillader modellen og udsigten at kommunikere.

Hvad er en handlingscontroller i Ruby on Rails?

Action Controlleren er C’et i MVC-mønsteret. Handlingscontrolleren modtager indgående anmodninger, giver mening i anmodningen og producerer det passende output.

Hvad er rake i Rails?

Rake er en opgaveløber for Ruby on Rails og Ruby-applikationer. Rails har foruddefinerede Rake-opgaver til at udføre test, køre migreringer og oprette databaser.

Hvad er udbyttet i Ruby on Rails?

Yield er et nøgleord, der bruges i metoder til at kalde en blok. Der er ingen begrænsning på antallet af argumenter, Yield kan overføre til blokken. Blokke, i dette tilfælde, er metoder uden navne, der kan bruges som ekstra argumenter til andre metoder.

Hvad er Garbage Collection Ruby on Rails?

Garbage Collection er processen med at kontrollere hukommelse, der bruges af computerprogrammer. Ruby on Rails holder styr på, hvilke objekter der bliver brugt af programmet frem for programmøren. Udviklerne kan således fokusere på logik og konvention i stedet for at bekymre sig om hukommelsesallokering.

Hvad er Garbage Collections rolle i Rails-appen?

Det frigør hukommelse på din maskine, så andre processer kan udføres. Garbage collection opnår dette ved at fjerne utilgængelige objekter, som et program efterlader efter udførelse.

Hvad er en aktivpipeline?

En Asset Pipeline i Ruby on Rails giver en ramme, der minimerer og sammenkæder CSS- og JavaScript-aktiver. Denne ramme gør det muligt at kombinere alle aktiver i din Rails-app automatisk med aktiver fra andre ædelstene.

Der skelnes mellem dynamiske og statiske stilladser

Stillads er processen med at generere store dele af Rails-applikationen.

Statisk stillads indtaster eksplicit en kommando, der producerer de nødvendige data i respektive felter. For at fuldføre statisk stillads skal du køre migreringer.

Dynamisk stillads genererer indhold og brugergrænseflader under kørsel. Denne proces kan bruges til at oprette, ændre og slette handlinger i en Rails-app.

Hvad er et klassebibliotek?

Et klassebibliotek omfatter domæner i Ruby on Rails, og trådprogrammering og datatyper er eksempler på sådanne domæner. Et klassebibliotek giver en udvikler mulighed for at skabe kodeabstraktion og dermed bruge den samme logik inden for forskellige elementer i en app.

  Den nemmeste måde at finde sårbarheder i Docker-billeder ved hjælp af Snyk

Beskriv Polymorphic Association in Rails

Polymorphic Association er en type Active Record Association. Polymorfi betyder, at et objekt kan have mange former. I Rails sammenhæng giver Polymorphic Association dig mulighed for at definere en enkelt model, der kan associeres med eller tilhøre andre modeller uden at skrive en gentagelseskode.

Hvad er strenginterpolation i Ruby?

Strenginterpolation tilføjer pladsholdere, der refererer til andre værdier i et strengobjekt. Brugen af ​​additionsoperatoren er den enkleste måde at interpolere værdier på.

Overvej dette eksempel:

name = "Titus"

puts "Hello " + name

Outputtet vil være;

Hej Titus

Hvad er Object Relationship Model (ORM)?

En ORM er en bro mellem databaser og objektorienterede programmer. En objektrelation, i Rails, angiver, hvornår klasser tilknyttes en tabel i din database.

Forklar Rails migration

Migreringer hjælper udviklere med at foretage ændringer i et databaseskema bekvemt. Udviklere kan således styre udrulning og tilbagerulning i databaseskemaet i et kontrolleret miljø. Denne tilgang forhindrer dig i at administrere individuelle SQL-scripts for at definere dine ændringer.

Forklar navnekonventionen i Rails

  • Klasse og modul: brug MixedCase, men har ikke en understregning. Navne i klasser og moduler starter med et stort bogstav.
  • Databasetabel: Navnet på en databasetabel skal være i flertal og snake-case.
  • Variabler: bogstaver, der erklærer variabler, skal være med små bogstaver og snake_case med en understregning, der adskiller dem.
  • Model: Brug MixedCase til at angive en model og sikre, at navnet er i entalsform.
  • Controllere: controllernavne er i flertal.

Hvad er forskellen mellem streng og tekst i Rails?

:streng er velegnet, når du vil gemme kort tekst med op til 255 tegn. Du kan bruge det med navne, brugernavne, e-mails, adgangskoder og titler.

:tekst passer til lange beskrivelser. Perfekte eksempler på kommentarer til et blogindlæg eller en butiksbeskrivelse.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Forklar Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) er et onlineangreb, hvor angriberen fanger godkendte brugere til at udføre bestemte handlinger på deres vegne.

Rails kræver, at udviklere tilføjer “protect_from_forgery” til ApplicationController for at undgå CSRF-angreb. Appen vil altid kræve et CSRF-token for at godkende en bruger.

Forklar hvad mixin er i Rails

En mixin tilbyder en kontrolleret måde at tilføje funktionaliteter til en klasse. Mange forskellige mixins udgør en klasse. Mixins udrydder behovet for at have flere arv.

Hvad er brugen af ​​belastning og krav i Ruby?

require( ) bruges til at importere biblioteker/perler

load() bruges til at udføre en kodeblok

Hvad er forskellen mellem tilbagekald og observatører i Ruby on Rails

Skinneobservatører bruges, når en metode ikke er direkte relateret til et objekts livscyklus. Deres livscyklusser er store, og de kan fastgøres eller afmonteres når som helst.

Tilbagekald kan kun kaldes i bestemte tilfælde i et objekts livscyklus. Eksempler på sådanne tilfælde er opdateringer, oprettelse og validering. Tilbagekald er kun aktive i korte perioder.

Hvad er seler og armaturer i Ruby?

Fixtures refererer til en måde at organisere data på, som du vil teste. De kan oprettes i filer, der ender med filtypenavnet .yml.

  Alt hvad du behøver at vide om datastof til digitale virksomheder

Harnesses er miljøet eller testløberen til at køre Rails test. Inventar er opsat i Seler.

Hvad er forskellen mellem udvide og inkludere?

“Inkluder” tilføjer en instansmetode til en klasse. Koden vil således være tilgængelig via klassemetoder.

“Udvid” tilføjer instansmetoder defineret i modulet til den udvidede klasse.

Er ædelstene og plugins det samme i Ruby?

Gems er pakkede Ruby-applikationer, der skal installeres. De er til generelle formål og er ikke afhængige af Rails for funktionalitet.

Plugins i Ruby on Rails implementeres sammen med din Rails-applikation. De ændrer eller tilføjer til kernefunktionaliteten i Rails.

Hvad er jernbaneobservatører?

Rails observer tilbyder en mekanisme, hvor et objekt informerer de andre, når dets tilstand ændres. Det er anvendeligt i et en-til-mange forhold, således at når et objekt ændres, informeres og ændres alle de afhængige objekter automatisk.

Hvilken kommando bruges til at oprette en migrering?

bin/rails db:migrate

Vis, hvordan man definerer klasse-, instans- og globale variabler i Ruby

  • Klassevariable: Kan bruges overalt i deres klasse. Klassens efterkommere kan også få adgang til dem. De starter med @@.
  • Forekomstvariabler: Bruges i det lokale omfang, der er specifikt for det oprettede objekts forekomster. De kan variere fra et objekt til et andet. De starter med @.
  • Globale variabler: Tilgængelig overalt i programmet. Starter med $.

Hvilken rolle spiller rakefile tilgængelig i demobiblioteket i Ruby?

Rakefile hjælper med test og pakning af Rails-kode. Filen definerer de opgaver, der udfører test eller demonstrerer applikationens funktioner.

Hvad er en fejemaskine i Rails?

Fejemaskiner fungerer som terminatorer i caching. De fungerer som halvfiltre og halve observatører og implementerer callbacks for de to roller. ‘expire_cache’ finder alle de cache-fragmenter, der skal udløbe, og rydder dem,

Hvad er filtre?

Disse er metoder “før” eller “efter” en controllers handling udføres. Sådanne metoder er nedarvet og vil køre med hver anmodning, din app modtager, så længe du har indstillet dem i ApplicationController.

Skel på omdirigering og gengivelse i Rails

Render: bruges til at gengive en skabelon og derefter sende den til klienten som svar på anmodningen. Denne skabelon genererer derefter den side, som browseren vil vise.

Omdirigering: sender en ny HTTP-anmodning til en anden URL. Denne handling omdirigerer klienten til en anden controller eller handling. Denne metode er praktisk, når du vil ændre den URL-klient, som ser på browseren.

Forskel mellem at kalde super() og superkald

  • Super: sender en besked til det aktuelle objekts forælder om at påkalde alle argumenter for den påberåbte metode.
  • super(): sender ingen argumenter til forælderen.

Hvad er forskellen mellem Procs og Blocks?

  • Blokke: Et stykke kode omgivet af gør/slut-udsagn eller krøllede klammeparenteser. De oprettes og udføres hver gang metoden kaldes.
  • Procs: Kodeblokke bundet sammen til et sæt lokale variable. Denne kode kan kaldes i forskellige sammenhænge og har stadig adgang til variablerne.

Hvad er forskellen mellem puts og print statements?

Vi bruger puts, når vi vil printe noget på skærmen. For eksempel,

puts “Hello World!!!”

Udskriver Hello World!!! på skærmen

Vi bruger print, når vi ikke ønsker at tilføje en ny linje på konsollen.

print “Hello World!!!” 

Udsender Hello World!!!, men en ny linje vil ikke blive tilføjet til konsollen.

Hvad er dynamiske findere?

Dynamiske findere giver udviklere mulighed for at søge efter poster i deres database uden at bruge rå SQL-forespørgsler. De bruger søgeordet find_by_, som derefter følges attributten for at blive søgt.

Forklar, hvordan Rail implementerer ajax

  • En trigger, såsom indsendelse af en formular eller klik på en knap, startes.
  • JavaScript-metoden sender triggerdataene til en handler på serveren.
  • Behandleren på serversiden arbejder på dataene og sender HTML til webklienten.
  • JavaScript-handler på klientsiden modtager HTML-indhold og opdaterer den aktuelle side.

Forklar Dig, Float og Max

  • Med Dig-metoden kan du udtrække værdier fra indlejrede hashes eller arrays.
  • Float er en Ruby-datatype, der repræsenterer reelle tal med floating-point-præcision.
  • Max er en metode, der kan bruges med arrays og hashes. Det returnerer den maksimale værdi i en samling af genstande/værdier.
array = [2, 9, 4, 7, 3]

maximum = array.max

Konsollen udsender 9, da det er det største tal.

Konklusion

Ovenfor er nogle spørgsmål, du sandsynligvis vil finde i din næste Ruby on Rails. Hvis du er en allround softwareingeniør, så tjek disse Node.js-interviewspørgsmål. Sørg for, at du forstår jobbeskrivelsen af ​​en Rails-ingeniør, før du deltager i din næste samtale.