Programmeerimise näpunäited

50 parimat korduma kippuvat rubiinintervjuu küsimust ja vastust

50 parimat korduma kippuvat rubiinintervjuu küsimust ja vastust

Ruby on tänapäevane programmeerimiskeel, mis on Jaapanis välja töötatud 90ndate paiku. See kõrgetasemeline keel on mõeldud üldotstarbelise tarkvara arendamiseks. Veebisaitidele veebirakendustele üleminekul sai Ruby tohutu populaarsuse. Kõrge mastaapsuse ja tugeva funktsioonikomplekti tõttu kütab see nende rakenduste esimest põlvkonda. Isegi pärast JS-i buumi naudib Ruby endiselt kasvavat nõudlust. Ettevõtted otsivad sageli arendajaid, kes valdavad Ruby and Rails'i, mis on Ruby lipulaev veebiraamistik, olemasolevate toodete säilitamiseks ja uute funktsioonide lisamiseks. Seega on hädavajalik teada levinud rubiinintervjuu küsimusi, kui soovite Ruby-töökoha haarata.

Korduma kippuvad rubiiniintervjuu küsimused


Ettevõtted saavad Ruby tööintervjuul küsida igasuguseid küsimusi. Suurte meeskondadega ettevõtted soovivad nende intervjuude käigus tavaliselt teada arendaja sügavust. Startupid otsivad seevastu üldjuhul kogenumaid arendajaid, kes suudaksid kiiresti äritooteid ehitada. Oluline on teada põhitõdesid lisaks Ruby kasutamist tootearenduses.

1. Mis on Ruby?


Rubiin on üldotstarbeline keel, mida kasutatakse igat tüüpi tehnikatoodete väljatöötamiseks. Tänu oma populaarsele serveripoolsele arendusplatvormile Rails on Ruby abil veebirakenduste loomine lihtne. Tugeva abstraktsioonikihi tõttu pakub Ruby arendajatele erakordset mitmekülgsust. Rubiiniprogrammid pole aga samal põhjusel kõige kiiremad. Lisaks leiavad programmeerijad, et Ruby on liideste kujundamisel väga paindlik.

2. Kes arendas rubiini?


Jaapani programmeerija nimega Yukihiro “Matz” Matsumoto töötas välja Ruby. Ta viis selle kasutusele C-programmeerimiskeelt kasutades. Tema poolt on välja töötatud ka MRI (Matzi Rubiini interpretaator) tuntud Ruby võrdlusrakendus.

3. Millised on rubiini parimad omadused?


Ruby on objektorienteeritud programmeerimiskeel, mis võimaldab parti, dünaamilist ja tugevat tippimist. Mixins võimaldab Ruby arendajatel rakendada paindlikke üksikuid pärandusi. See pakub paljude teiste hulgas hulgaliselt standardseid teeke, kohalikke pistikprogrammi API-sid, tsentraliseeritud paketihaldust, mitmetasandilist muutuvat ulatust, esmaklassilisi jätkamisi ja tugevat prügikollektsiooni.

4. Mis on parim alternatiiv rubiinile?


Python on üks parimaid alternatiive Rubyle. Mõlemad on tõlgitud keeled ja pakuvad tuge peamistele standardraamatukogudele. Mõlemad sobivad kaasaegsete veebirakenduste loomiseks. Veebiraamistik Ruby on Rails on väga võimekas, samuti on see Pythoni Django ja Flaski raamistik. Lisaks võimaldavad nii Ruby kui ka Python arendajatel luua muud üldist tarkvara, nagu näiteks süsteemi utiliidid, sidevahendid ja platvormidevahelised rakendused.

5. Miks arendada veebirakendusi Ruby abil?


Paljude rubiinintervjuu küsimuste hulgas küsitakse tööotsijatelt sageli põhjust kasutada Rubyt veebirakenduste loomiseks. Ilmne põhjus on Ruby on Rails raamistik. Rööpad on tuntud oma suurepäraste prototüüpimisvõimaluste poolest. Arendajad saavad uute tooteideede kiiresti prototüüpida, kasutades juba olemasolevaid struktuure ja komponente. Nii saab tooteid visualiseerida võimalikult väheste koodiridadega. See on Ruby üks enimmüüdud punkte.

6. Kuidas kontrollida rubiini versiooninumbrit?


On väga lihtne kontrollida, kas rubiin on süsteemi installitud, ja kui jah, siis millist versiooni sellest. Kasutage lihtsalt järgmist käsku rubiiniversiooni numbri kinnitamiseks Linuxis ja Unixil põhinevates jaotustes.

$ ruby ​​-v $ ruby ​​--versioon

See väljastab versiooni numbri, kuna antud rubiin on juba installitud. Muidu tagastatakse käsk, mida ei leitud.

7. Millised klassiraamatukogud on rubiinis saadaval?


Klasside raamatukogud on sisseehitatud raamatukogud erinevatele domeenidele, näiteks lõime-, suhtlus- ja andmetüüpidele. Ruby on varustatud mõne järgmise klassi raamatukoguga-

Need on mõned ülesanded, mille jaoks Ruby pakub juba mõnda eelnevalt loodud funktsionaalsust. Arendajad saavad Ruby abil luua mis tahes tüüpi isikupärastatud teeke.

8. Millised on rubiinis tavaliselt kasutatavad operaatorid?


Nagu märkimisväärsete programmeerimiskeelte puhul, pakub Ruby arvutamiseks ka mitmeid primitiivseid operaatoreid. Operaatorid määratlevad toimingu, mis on vajalik teie koodi abil. Põhioperaatorid on loetletud allpool -

9. Milline järgmistest avaldistest tagastab vale?


tõsi ? "True": "False" vale ? "Tõsi": "Vale" null ? "Tõsi": "Vale" 1 ? "Tõsi": "Vale" 0 ? "Õige Vale" [] ? "Õige Vale"

Intervjueerijad testivad sageli tööotsijate põhitõdesid, kasutades ühte või mitut ülaltoodud väljendit. Isegi kogenud programmeerijad, kes tunnevad selliseid keeli nagu Python ja JavaScript, ei pruugi sellele vastata. Ruby hindab valeks ainult valesid ja nullväärtusi. Konstruktsioonid nagu 0 ja [] hindavad õigeks.

10. Millised on allpool olevate muutujate väärtused pärast täitmist?


number1 = tõene ja vale number2 = tõene ja& vale

See on veel üks näide sageli küsitavatest rubiinintervjuu küsimustest. Ehkki esmapilgul näib olevat samaväärne, võib nende hinnang teid üllatada. Nende printimisel saate number1 tõeseks ja number2 valeks. See juhtub seetõttu, et = (operaatori omistamine) on rubiinis kõrgema tähtsusega kui loogika ja operaator.

Nii et esimene avaldis ütleb lihtsalt, et tõlk täidaks (number1 = tõene) ja vale, mille tulemuseks on number 1 tõene. Operaatoril && on aga parem tähtsus kui = ja nii hindab teine ​​avaldis ootuspäraselt.

11. Kas saate selgitada muutuvaid tüüpe rubiinis?


Nagu ka teiste programmeerimiskeelte puhul, kasutab Ruby muutujaid erinevate programmiandmete hoidmiseks. Rubiini muutujad töötavad mõnevõrra Pythoniga. Ruby'l on neli vaikimisi muutuja tüüpi. Nemad on -

12. Millised on erinevused nulli ja vale vahel?


Oleme juba rääkinud Ruby's saadaval olevatest null- ja valekonstruktsioonidest. Ehkki mõlemad väljendite sisemuses kasutamisel hindavad seda valeks, on nende vahel peent erinevusi. Esiteks ei saa null olla väärtus, kuid vale. Tavaliselt tagastavad Ruby-programmid nulli, kui predikaati pole, ja predikaatide korral tagastatakse kas tõene või vale. Vale on ka tõeväärtuse andmetüüp, samas kui null ei tähenda ühtegi tüüpi.

13. Arutage rubiinis kasutatavaid põhilisi andmetüüpe.


Kandidaatidelt küsitakse sageli rööbastel rööbastel intervjuuküsimustega seotud andmetüüpide tundmist. Üldotstarbelise programmeerimiskeelena toetab Ruby mitut andmetüüpi, mis hõlbustavad meie projektide erinevaid aspekte. Ruby'is saadaval olevad põhiandmetüübid on -

14. Tehke vahet koormusel ja nõudmisel


Ruby pakub kahte erinevat võimalust väliste koodijuppide kaasamiseks koodibaasi, nimelt laadimine ja nõudmine. Ehkki pealtnäha sarnased, on nende vahel peent erinevusi. Koormust tuleks kasutada juhtudel, kui iga sündmuse muutmise korral on vaja välist koodi. Teisest küljest nõuavad toimingud autoloadina ja neid tuleks kasutada koodilõikude automaatseks kaasamiseks.

15. Kuidas rubiinis tinglikega hakkama saada?


Tingimuslikud konstruktsioonid asuvad tänapäevaste programmeerimiskeelte keskmes. Nad kontrollivad teie programmi voogu ja täitmist. Enamik keeli pakub tänapäeval selleks mingisugust (kui - siis - toimingut) konstruktsiooni. Ruby saab tingimusega hakkama, kasutades konstruktsiooni erinevaid variante.

16. Kuidas töötavad aasad rubiinis?


Silmused on enamiku programmeerijate jaoks eelistatud viis iteratsioonide sooritamiseks. Ruby pakub selle hõlbustamiseks erinevaid silmusekonstruktsioone. Vaatame neid allpool lühidalt.

17. Kuidas toimuvad pausid rubiinis?


Break-konstruktsioon on levinud kõigis suuremates programmeerimiskeeltes. Sama toimib ka rubiinis. Lauselausega saate vabalt ulatusest vabaneda sõna otseses mõttes. Programmeerijad kasutavad seda sageli silmuste ja rekursiivsete funktsioonide tagasisõiduks. Allpool demonstreerime, kuidas Ruby'is for for silmusest välja murda.

#!/ usr / bin / ruby ​​i jaoks [1, 2, 3, 4, 5] do paneb i, kui i == 3 katkestuse lõppu

See kood prindib kuni 3 ja lõpeb seejärel. See juhtub, kuna oleme kasutanud sõna „break” kohe, kui „i on võrdne kolmega“.

18. Miks kasutada järgmist lauset?


Järgmine avaldis rubiinis on täiendus break-avaldusele. Seda kasutatakse silmuse konkreetse iteratsiooni vahele jätmiseks ja jätkake järgmise juurde. See on samaväärne jätkuva avaldusega C-s ja järgmises Perlis. Järgmine käsk jätab teise iteratsiooni vahele, kuid jätkab kolmandat.

#!/ usr / bin / ruby ​​i jaoks 1… 6, kui i == 2, siis järgmine ots paneb i otsa

Kuna rubiinintervjuu küsimustes on tsükli iteratsioonide küsimused tavalised, olge neile vastamisel ettevaatlik.

19. Kuidas avaldused uuesti teha?


Ümberlauseid saab kasutada teie silmus oleva teatud iteratsiooni ümberhindamiseks. Lingi uuesti tegemise korral tsükli tingimust ei täideta. Allpool olev katkend annab lihtsa näite.

i jaoks 1 ... 6 korral paneb i i + = 1 ja teeb uuesti, kui i == 2 lõpp

Kui suurendate loendurit pärast avalduse uuesti tegemist, ei täideta seda kunagi. Nii et teie programm langeb lõpmatusse ringi. See on uute Ruby programmeerijate tavaline viga.

20. Kuidas avaldused uuesti proovida?


Uuesti proovimise lause on mugav viis silmuse korduste kordamiseks rubiinis. Uuesti proovimise avalduse kasutamine osutub paljude hooajaliste programmeerijate jaoks sageli keeruliseks.

#!/ usr / bin / ruby ​​i jaoks ajavahemikus 0… 5 algab "i = # i" tõstmine, kui i> = 3 päästetöö uuesti proovimise lõpp

See koodilõik langeb lõpmatusse tsüklisse. See juhtub, kuna tingimus, et kui see alati tõene on. Ja siis kordab iteratsioon kordamist uuesti.

21. Kuidas kasutada kommentaare rubiinis?


Märkused on loetavuse ja dokumentatsiooni jaoks hädavajalikud. Ruby toetab Pythoni-sarnaseid ühe rea kommentaare. Lisage lihtsalt kood enne seda osa koodist, mida soovite kommenteerida.

# comment = 1 paneb kommentaari

Sa peaksid saama a NimiViga kuna teie programmil pole teie kommenteeritud muutujast aimugi. Mitmerealised kommentaarid on saadaval ka rubiinis.

= alusta paneb "tere" = lõpp

Seda koodi ei hinnata ja seega ei trükita midagi.

22. Kas järgmine rubiiniavaldus kehtib?


-> (a) p a ["Tere universum"]

Ülaltoodud rubiiniavaldus kehtib täiesti. See lihtsalt loob lühikese (->) tähistuse abil proci. See proc on ka lambda. See võtab parameetriks a, prindib selle, käivitab protsessi ja edastab parameetri “Tere universum”. Nii et tulemus peaks olema lihtsalt “Tere universum”.

23. Kuidas luua objekte rubiinis?


Paljudele tööandjatele meeldib rubiinintervjuu küsimustes küsida esemete ja klasside kohta. Õnneks on Ruby'is klassi objektide loomine väga lihtne. Teil on vaja lihtsalt objekti klassi nime ja saate seda salvestada nagu muutujaid.

object1 = klassiNimi.uus

Nüüd hoiab objekt1 klassi className uut eksemplari.

24. Kuidas luua Ruby klassid?


Klassid on teie objektide prototüübid. Samuti määratletakse neile lubatud meetodid. Enne objekti kiireks muutmist peate looma klassi. Allpool olev koodilõik näitab, kuidas luua Ruby's lihtne klass.

klass className # koodid siin lõpus

Nüüd saate hõlpsalt objekti luua eelmises küsimuses näidatud meetodi abil.

25. Kuidas luua meetodeid?


Rubiinimeetodid on samaväärsed teiste keelte funktsioonidega, näiteks C ja Python. See takistab programmeerijatel oma programmis samu koodiplokke kirjutamast. Kui olete meetodi määranud, saate seda helistada kõikjal oma programmis. Vaadake järgmist näidet.

def Loop i jaoks 0 ... 10 paneb i lõpu Loop ()

Nüüd saate sellele meetodile helistada, nagu on näidatud viimasel real, et printida numbrid 0 kuni 9 lähtekoodi kõikjalt.

26. Kas saate selgitada erinevaid võrdseid rubiinioperaatoreid?


Ruby pakub arvude ja objektide võrdsuse kontrollimiseks mitut võrdset operaatorit. Igal operaatoril on veidi erinevad kasutusjuhtumid, mis ajavad uusi programmeerijaid üsna tihti segadusse. Heidame pilgu allolevale Ruby neljale erinevale võrdsele operaatorile.

27. Tehke rubiinis vahet superil superil ()


Ehkki esmapilgul sarnased, on superil ja superil () üsna erinevad erinevused. Superkõne kutsub esile vanemmeetodi, edastades samad lapse meetodile edastatud argumendid. See võib sageli põhjustada ootamatu käitumise, mis on tingitud vanameetodi parameetrite võimalikust mittevastavusest. Kuid super () kutsumine kutsub vanemmeetodi otse, parameetreid edastamata.

28. Kuidas edastada viide rubiinis?


Ruby ei paku näpunäiteid ja sellega seotud kõrvalehoidmist. Kuid see võimaldab programmeerijatel siiski kohalike muutujate asemel viiteid edastada. Seda saab teha tähise ampersand (&) abil. Vaadake allolevat koodi, et mõista, kuidas see rubiinis töötab.

#! / usr / bin / ruby ​​def meetod (& block) paneb ploki "See on meetod".kõne lõpetamise meetod paneb "See on blokeerimisviide"

Vigade ilmnemisel kontrollige kindlasti oma taanet ja tühikuid.

29. Kuidas toimivad moodulid rubiinis?


Ruby moodulid on konstantide ja meetodite kogumid. Need on määratletud klassidena ja neil on palju sarnaseid jooni nagu klasside definitsioonid, konstandid ja muud moodulid. Kuid Ruby ei luba mooduleid kasutades objekte luua. Samuti puudub toetus pärimiseks.

Mooduli eesmärk on pakkuda nimeruume kokkupõrgete vältimiseks. Lisaks võimaldavad need miksidel jagada klasside vahel ühiseid funktsioone.

30. Kuidas Mixins töötab rubiinis?


Kuna Ruby ei paku klassiobjektidele mitut pärandit, vajavad programmeerijad selleks erinevat viisi. Nii et selle probleemi lahendamiseks kasutatakse mooduleid. Ehkki mooduleid ei saa kohe luua, saab neid hõlpsasti eri klassidesse kaasata. Nii et teil on endiselt juurdepääs moodulis määratletud meetoditele, lisades selle klassi. Mixinid saavad oma nime klassi sees olevate moodulite "segamisseadmete" järgi.

31. Kas on võimalik helistada privaatsele meetodile väljaspool rubiiniklassi?


Jah, see on Ruby's võimalik. Meetodi privaatseks kutsumiseks peame kasutama klassi objekti. Seda saab teha saatmismeetodi abil. Allpool olev kood näitab seda toimingus.

klass ClassName private def meetod p "See on privaatne meetod" lõpu lõpp

Nüüd võime seda privaatset meetodit helistada Ruby tõlgi abil, kasutades allpool olevat rida.

>> Klassinimi.uus.saada (: meetod)

32. Selgitage kaasamise ja laiendamise erinevusi


Mooduleid saate kasutada nii kaasamise kui laiendamise lausete abil. Kuid need on üsna erinevad ja neid kasutatakse konkreetsetel eesmärkidel. Lühidalt, kaasab lisab mooduli meetodid klassi objektile, pikendades aga klassi meetodid.

33. Rubiinis stringielementidele juurdepääs?


Stringid on üks peamisi andmetüüpe, mida Ruby pakub. Kõik, mida ümbritseb ””, on rubiinis string. Ruudukujuliste sulgude abil saate Ruby-stringi elemendid hõlpsalt hankida. Allpool olev koodilõik näitab seda.

#! / usr / bin / ruby ​​foo = "midagi nööridega pistmist" pikkus = foo.i pikkus 0… foo.pikkus p foo [i] lõpp

See koodiplokk prindib standardväljundis ükshaaval kõik antud stringi märgid.

34. Kas on võimalik kirjutada mitmerealisi stringe rubiinis??


Paljude rubiinintervjuu küsimuste ajal küsitakse tööotsijatelt, kas rubiinis on võimalik kirjutada mitmerealisi stringe. Ehkki te ei pruugi sellega tuttav olla, on see võimalik ja seda on lihtne teha. Allpool demonstreerime Ruby'is kolme erinevat viisi.

paneb "R Ru Rub Ruby" paneb% / R Ru Rub Ruby / paneb< 

35. Mis vahe on kloonil ja dupil?


Ruby pakub teie programmis olevate objektide kloonimiseks / paljundamiseks kahte tugevat meetodit. Ehkki tunduvad, et nad teevad sama, on erinevus üsna suur - kõne kloonimiseks kopeerib kogu objekti, sealhulgas moodulite miksi. Kuid dup loob Object'ist madala koopia ja ei kopeeri ühtegi miksi.

36. Kuidas eemaldada rubiinmassiividest nullväärtused?


Kuna Ruby's on kehtiv tüüp null, leiate selle sageli oma programmist. Programmeerijad peavad tagama, et nad eemaldaksid võimalikult palju selliseid esinemisi kogu oma koodibaasi ulatuses. Nende nullväärtuste leidmine ja eemaldamine Ruby massiividest on üsna lihtne. Allpool olev koodilõik pakub tutvustust.

arr = [null, "test", null, "test", null, "test"].kompaktne paneb arr

Ehkki arr-konstrukt hoiab ära kuus väärtusobjekti, prindib ta neist vaid kolm, kõik väärtused, mis pole nullid. Kompaktne meetod võimaldab meil seda teha.

37. Kirjutage Fibonacci-numbrite genereerimiseks rubiiniprogramm


Paljudele tööandjatele meeldib rubiinintervjuu ajal küsida klassikalisi numbriteooriaga seotud küsimusi. Fibonacci sari on intervjueerijate seas kindlasti üks lemmikuid. Iga seeria number on kahe eelmise numbri summa. Allolev koodilõik võib genereerida lihtsa Fibonacci seeria.

first_number = 0 second_number = 1 next_term = 0 paneb "Mitu terminit: -" n = saab.chomp.to_i paneb "Fibonacci seeria esimesed # n terminit: -" i = 1 while (i<=n+1) if(i<=1) next_term=i else puts next_term next_term=first_number+second_number first_number=second_number second_number=next_term end i+=1 end

38. Kas saate eristada Procs ja lambdasid?


Nii procs kui lambdas on osa sulgemisest, funktsiooni või koodiploki leksikaalsest ulatusest. Neid kasutatakse loetavuse suurendamiseks pakendamiseks või rühmakoodiplokkide jaoks. Plokid on ka sulgurid, kuid need pole objektid nagu procs või lambdas. Prokse ja lambdasid saab tagastada ka funktsioonide seest. Need on siiski üsna erinevad. Lühidalt, kõik lambdad on prokid, kuid mitte kõik prokid pole lambdad. Lambdas on parameetrite numbrite kontrollimisel ranged, kuid procs mitte. Lambdas tagastavad lihtsalt väärtused, samas kui procs tagastavad väärtused praegusest ulatusest.

39. Kuidas kontrollida rubiinimeetodite juurdepääsutasemeid?


Ruby võimaldab programmeerijatel hõlpsasti kontrollida oma meetodite juurdepääsutasemeid. Võite muuta oma meetodid kas avalikeks, privaatseteks või kaitstud. Nii saate kogu programmis määrata, millistel objektidel on millistele meetoditele juurdepääs. Nagu nimigi soovitab, saavad avalikud meetodid juurde pääseda kõik. Privaatsed meetodid on ligipääsetavad ainult selle klassi objektidele, kellele meetodid kuuluvad. Seevastu kaitstud meetodid on ligipääsetavad ainult klassile, milles see on määratletud, ja selle alaklassidele.

40. Mis on kalliskivid rubiinis?


Kalliskividest on algusest peale saanud populaarne kontseptsioon. Rubiinikivid on rubiiniprogrammid, mida levitatakse pakettidena. Need on olnud Ruby edu taga ülitähtis tegur. Rakenduse pakkimine ja kalliskivide abil jagamine / juurutamine on väga lihtne. Selle paketihalduri lihtne, kuid produktiivne CLI-liides on väga paindlik ja võimaldab arendajatel oma programmi vaevata pakkida. Ruby gems paketihaldur on nüüd sisseehitatud tavapärase Ruby käitusajaga.

41. Mis on Rails Engine?


Potentsiaalsetelt kandidaatidelt küsitakse rööbaste rubiinide intervjuu ajal sageli rööbaste mootorite kohta. Rails Engine on mehhanism, mis võimaldab programmeerijatel pakkida oma rööparakendus või mõned spetsiifilised funktsioonid teiste rakenduste või suuremate levitatavate pakettide osaga. Võite mõelda Rails Mootoritest kui minirakendustest. Juurdepääs nendele mootoritele sõltub teie serveri marsruutimispoliitikast. Sa lihtsalt paigaldad mootori ja ruuterid saavad seda kasutada.

42. Kuidas rubiinis esemeid külmutada?


Ruby võimaldab programmeerijatel oma programmide käivitamise ajal objekte külmutada. See võib olla kasulik mitmes olukorras. Allpool olevad koodijupid demonstreerivad Ruby objektide külmutamist tegevuses.

foo = "midagi" foo.külmutada, kui (foo.külmunud? ) paneb "foo on külmunud objekt", teine ​​paneb "foo on tavaline objekt" lõppu

Niisiis kasutatakse objekti külmutamiseks ja külmutamiseks külmutamismeetodit? selle oleku kontrollimiseks. Kui kommenteerite teist rida, saate muu ploki väljundi.

43. Arutlege rööbastes saadaval olevate CRUD-verbide üle


CRUD on RESTful API-de põhiline ehitusplokk. Rails raamistik võimaldab kõiki suuremaid CRUD-toiminguid. Arutame allpool Railsi veebiverbe.

  • GET - seda verbi kasutatakse leheressursside toomiseks
  • POST - uute ressursside loomine ja esitamine
  • PATCH / PUT - värskendage olemasolevaid ressursse
  • KUSTUTA - eemaldage määratud ressursid

44. Milline on niidi ühendamise ja lõime elutsükli suhe?


Ühe lõimaga elutsüklid rakenduses Ruby käivitatakse automaatselt kohe, kui teie protsessoril on ressursse. Kuigi lõimed on ressursinäljad, saate rakenduse Ruby on Rails kiirust märkimisväärselt parandada, kasutades korraga mitut lõime. Keerme ühendamise tehnikat kasutatakse laialdaselt mitme lõime katkestusteta töötamise hõlbustamiseks. Selles tehnikas ootab ooterežiimis mitu juba olemasolevat korduvkasutatavat lõime. Kui uued ressursid on saadaval, algavad uued lõimed automaatselt.

45. Millised on rööbaste rakenduste testimise parimad tööriistad?


Üks levinumaid rubiinintervjuu küsimusi, millega tööotsijad kokku puutuvad, on seotud tööriistade testimisega. Kuna Ruby on Rails kasutatakse laialdaselt suuremahuliste veebirakenduste loomiseks, on testimine äärmiselt oluline osa. Õnneks on uute Ruby arendajate testimiskiiruse ja tulemuse suurendamiseks olemas märkimisväärne arv eelnevalt loodud tööriistu. Mõned populaarsed ja kasulikud Railsile mõeldud testimisvahendid on -

  • rspec - domeenipõhine tööriist rubiinkoodi testimiseks
  • minitest - täieõiguslik testimiskomplekt, mis toetab TDD, BDD, võrdlusuuringuid ja kiiret prototüüpimist.
  • test-unit - roboti üksuse testimisraamistik Ruby jaoks, mis põhineb xUniti põhimõtetel.
  • kurk - paindlik Ruby tööriist Ruby automatiseeritud testide läbiviimiseks.

46. Mitu viisi saate rubiinmassiividele üksusi lisada?


Nagu juba arutletud, on massiivid Ruby oluliseks andmestruktuuriks. Uute üksuste lisamiseks juba olemasolevale massiivile on mitu võimalust. Mõned neist on toodud allpool.

foo = ["midagi", "ufo", "mida?"] paneb foo foo.surumine ("riba") paneb foo foo.unshift ("newItem") paneb foo foo.insert (1, "anotherNewItem") paneb foo

Tõukemeetod lisab massiivi lõppu uued elemendid, alguses nihutatakse ja sisestatakse üksuste lisamiseks mis tahes määratud asukohta.

47. Mitu viisi saate üksusi rubiinmassiividest eemaldada?


Ka üksuste eemaldamine massiividest pole Ruby's suurem asi. Programmeerijad saavad selleks kasutada erinevaid meetodeid. Pakume allpool lihtsat tutvustust. See on osa teisest levinumast rubiinintervjuu küsimusest, mis teile võib tekkida.

foo = ["midagi", "ufo", "mida?"," anotherNewItem "," newItem "," bar "] foo.pop paneb foo foo.shift paneb foo foo.kustuta ("ufo") paneb foo foo.uniq paneb foo

Niisiis, pop kustutab massiivi viimase üksuse, nihutab esimest ja kustutab konkreetsed üksused. Meetod uniq eemaldab massiivist dubleerivad üksused.

48. Kuidas turvalisi andmeid rööbastesse salvestada?


Rails-rakendused käsitlevad sageli tundlikku teavet, näiteks paroole, kasutajanimesid, IP-aadresse. On äärmiselt halb mõte neid andmeid tavalise tekstina salvestada. Andmete ohutuse tagamiseks peaksite alati nõuetekohaselt mõõtma. Kolmandate osapoolte andmeid, näiteks makse- ja taustteavet, tuleks salvestada selliste spetsialiseeritud teenuste kaudu nagu Stripe. Enne andmebaasi salvestamist krüpteerige andmebaasi andmed. Kuulamise ärahoidmiseks veenduge, et võrguandmeid saadetaks ja võetaks vastu turvaliste ühenduste abil.

49. Kuidas toimida failitoimingutega rubiinis?


Nagu teisedki programmeerimiskeeled, koosnevad failid ja nende manipuleerimine suurema osa Ruby programmeerimisest. Tänu Ruby tugevatele teekidele ja sisseehitatud meetoditele on failide haldamine Ruby's üsna vaevatu. Mõne failitoimingu mõistmiseks vaadake allolevat juppi.

new_file = Fail.avatud ("test.txt ") faili_andmed = uus_fail.loe uus_fail.close file_data = Fail.loe ("test.txt ").split File.avatud ("test.txt "," w ") | f | f.kirjuta "# Aeg.nüüd - uus andmete kirjutamise \ n " fail.kirjutama ("test.txt "," andmed ... ", režiim:" a ")

50. Kuidas käsitleda erandeid, kasutades rubiinis Catchi?


Paljudes rubiinintervjuu küsimustes küsivad intervjueerijad kandidaatidelt, kuidas nad peaksid rubiiniprogrammides erandeid käitlema. Nagu teisedki moodsad keeled, võimaldab Ruby programmeerijatel tabada käitamisvigu ja neid käsitseda, ilma et kogu rakendus kokku kukuks. Süntaks erineb siiski mõnevõrra teistes keeltes leiduvatest proovimispüüdmistest.

viskama: Label_Name # ... koodi ei käivitata püüdmine: Label_Name ei tee # ... täidab sobiva saagi, kui viskega kohtab. lõpp

Lõpumõtted


Kuna Ruby intervjuu küsimused võivad varieeruda olenevalt kandideeritavast positsioonist ja ettevõttest, on raske kõiki võimalikke küsimusi ühte juhendisse koondada. Kuid meie toimetajad on püüdnud anda endast parima, et visandada kõige sagedamini küsitletud Ruby on Rails'i intervjuuküsimused teie töö ettevalmistamisel. Kui olete Ruby jaoks uus, soovitame teil mitte minna keeruliste küsimuste või tehnikate juurde. Selle asemel peaksite alati proovima põhitõdesid omandada ja lihtsaid tegelikke projekte luua. See aitab teil intervjuusid palju vaevata lahendada. Jääge meie juurde, et saada rohkem juhiseid nõudlike CS-töökohtade kohta.

Kuidas kasutada Xdotooli hiireklõpsude ja klahvivajutuste stimuleerimiseks Linuxis
Xdotool on tasuta ja avatud lähtekoodiga käsurea tööriist hiireklõpsude ja klahvivajutuste simuleerimiseks. See artikkel hõlmab lühikest juhendit xdot...
Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...