Programozási tippek

Az 50 legfontosabb gyakran ismételt Ruby Interjú kérdés és válasz

Az 50 legfontosabb gyakran ismételt Ruby Interjú kérdés és válasz

A Ruby egy modern programozási nyelv, amelyet Japánban fejlesztettek ki a 90-es évek körül. Ez a magas szintű nyelv általános célú szoftverfejlesztésre szolgál. A Ruby hatalmas népszerűségre tett szert a weboldalak webalkalmazásokra való áttérése során. Nagy méretezhetőségének és robusztus szolgáltatáskészletének köszönhetően üzemanyagot szolgáltat ezen alkalmazások első generációjának. A JS fellendülése után is Ruby még mindig élvezi a növekvő keresletet. A vállalatok gyakran keresik a Ruby és a Rails, a Ruby kiemelt webes keretrendszerének folyékony fejlesztőit, hogy meglévő termékeiket fenntartsák és új funkciókat hozzanak létre. Tehát elengedhetetlen tudni a rubin interjúval kapcsolatos gyakori kérdéseket, ha meg akarsz ragadni egy Ruby állást.

Gyakran ismételt Ruby interjúk


A vállalatok mindenféle kérdést feltehetnek egy Ruby állásinterjún. A nagy csapattal rendelkező vállalkozások ezeken az interjúkon általában meg akarják tudni a fejlesztő mélységét. A startupok viszont általában tapasztaltabb fejlesztőket keresnek, akik képesek az üzleti termékek gyors felépítésére. Fontos tudni, hogy Ruby hogyan használja a termékfejlesztést az alapok mellett.

1. Mi az a Ruby?


A Ruby egy általános célú nyelv, amelyet minden típusú technikai termék kifejlesztésére használnak. Könnyű webalkalmazásokat építeni a Ruby segítségével a népszerű szerveroldali fejlesztői platformnak, a Rails-nek köszönhetően. A Ruby robusztus absztrakciós rétegeinek köszönhetően kivételes sokoldalúságot kínál a fejlesztőknek. A rubin programok azonban ugyanezen ok miatt nem a leggyorsabbak. Sőt, a programozók a Rubyt nagyon rugalmasnak találják az interfészek tervezésénél.

2. Ki fejlesztette ki a Rubyt?


Yukihiro „Matz” Matsumoto nevű japán programozó kifejlesztette a Rubyt. A C programozási nyelv segítségével valósította meg. Az MRI (Matz's Ruby Interpreter) néven ismert Ruby referencia-megvalósítását szintén ő fejlesztette ki.

3. Melyek a Ruby legjobb tulajdonságai?


A Ruby egy objektum-orientált programozási nyelv, amely lehetővé teszi a kacsa, a dinamikus és az erős gépelést. A Mixins lehetővé teszi a Ruby fejlesztők számára, hogy rugalmas egyszeri örökségeket valósítsanak meg. Számos szabványos könyvtárat, natív plugin API-kat, központosított csomagkezelést, többszintű változó hatókört, első osztályú folytatásokat és robusztus szemétgyűjtőt kínál, sok egyéb mellett.

4. Mi a Rubin legjobb alternatívája?


A Python a Ruby egyik legjobb alternatívája. Mindkettő értelmezett nyelv, és támogatást nyújt a nagyobb szabványos könyvtárak számára. Mindkettő alkalmas jelölt a modern webalkalmazások felépítésére. A Ruby on Rails webes keretrendszer nagyon képes, ugyanúgy, mint a Django és a Flask keretrendszer a python számára. Ezenkívül a Ruby és a Python lehetővé teszi a fejlesztők számára, hogy más általános szoftvereket hozzanak létre, például rendszerszolgáltatókat, kommunikációs eszközöket és platformokon átívelő alkalmazásokat.

5. Miért érdemes webalkalmazásokat fejleszteni Ruby használatával?


A rubininterjúk rengeteg kérdése közül gyakran megkérdezik az álláskeresőket arról, miért használják a Ruby-t webes alkalmazások készítéséhez. Ennek nyilvánvaló oka a Ruby on Rails keretrendszer. A Rails kiváló prototípus-készítő képességeiről ismert. A fejlesztők gyorsan prototípusozhatják az új termékötleteket a már meglévő struktúrák és alkatrészek felhasználásával. Így a termékek a lehető legkevesebb kódsorral jeleníthetők meg. Ez a Ruby egyik legkelendőbb pontja.

6. Hogyan ellenőrizhető a Ruby verziószám?


Nagyon könnyű ellenőrizni, hogy a rubin van-e telepítve egy rendszerbe, és ha igen, akkor annak melyik verziója. Egyszerűen használja a következő parancsot a rubin verziószám ellenőrzéséhez Linux és Unix alapú terjesztésekben.

$ ruby ​​-v $ ruby ​​--verzió

Kiadja a megadott rubin verziószámot. Egyébként a parancs nem található parancsot kap vissza.

7. Milyen osztályú könyvtárak állnak rendelkezésre Ruby-ban?


Az osztálykönyvtárak különböző tartományok, például szálak, kommunikáció és adattípusok beépített könyvtárai. Ruby a következő osztálykönyvtárakkal érkezik-

Ezek olyan feladatok, amelyekhez a Ruby már tartalmaz néhány előre elkészített funkciót. A fejlesztők tetszőleges típusú, személyre szabott könyvtárakat hozhatnak létre a Ruby használatával.

8. Melyek a Ruby-ban gyakran használt operátorok?


A figyelemre méltó programozási nyelvekhez hasonlóan a Ruby is számos primitív operátort kínál a számításhoz. Az operátorok meghatározzák a kód használatához szükséges műveletet. Az alapvető operátorokat az alábbiakban soroljuk fel -

9. Az alábbi kifejezések közül melyik ad vissza hamis értéket?


igaz ? "Igaz": "Hamis" hamis ? "Igaz": "Hamis" nulla ? "Igaz": "Hamis" 1 ? "Igaz": "Hamis" 0 ? "Igaz hamis" [] ? "Igaz hamis"

Az interjúkészítők gyakran tesztelik az álláskeresők alapjait a fenti kifejezések egy vagy több használatával. Még a tapasztalt programozók is, akik tudnak olyan nyelveket, mint a Python és a JavaScript, nem tudnak válaszolni rá. Ruby csak hamis és nulla értékeket értékel hamisnak. Az olyan konstrukciók, mint a 0 és [], igazra értékelnek.

10. Melyek az alábbi változók értékei a végrehajtás után?


szám1 = igaz és hamis szám2 = igaz és& hamis

Ez egy másik példa a gyakran feltett rubininterjú-kérdésekre. Bár első pillantásra egyenértékűnek tűnik, értékelésük meglepetést okozhat. Ha kinyomtatja őket, akkor a1-es szám igaz és a 2-es szám hamis lesz. Ez azért történik, mert a = (operátor hozzárendelése) elsőbbsége a Ruby-ban, mint a logikai és az operátor.

Tehát az első kifejezés csak azt mondja a tolmácsnak, hogy végezzen (szám1 = igaz) és hamis, ami azt eredményezi, hogy a szám1 igaz. Az && operátornak azonban nagyobb az elsőbbsége, mint a = -nál, ezért a második kifejezés a várt módon értékeli.

11. Meg tudja magyarázni a Ruby változó típusait?


A többi programozási nyelvhez hasonlóan a Ruby is változókat használ a különféle programadatok tárolására. A Ruby változói némileg hasonlóak a Pythonhoz. A Rubynak négy alapértelmezett változótípusa van. Ők -

12. Mi a különbség a Nil és a False között?


Már elmondtuk a Ruby-ban elérhető semmilyen és hamis konstrukciót. Bár mindkettő hamisnak értékeli, ha a kifejezéseket belsejében használja, finom különbségek vannak közöttük. Egyrészt a nulla nem lehet érték, de a hamis. Általában a Ruby-programok nulla értéket adnak vissza, ha nincs predikátum, és predikátum esetén igaz vagy hamis értéket ad vissza. A hamis logikai adattípus is, míg a nulla nem képvisel semmilyen típust.

13. Beszélje meg a Ruby-ban használt alapvető adattípusokat.


A jelöltektől gyakran érdeklődnek a rubin on sínen történő adattípusok ismerete iránt. Általános célú programozási nyelvként a Ruby többféle adattípust támogat, amelyek megkönnyítik projektjeink különböző aspektusait. A Ruby-ban elérhető alapvető adattípusok a következők -

14. Különböztesse meg a terhelést és a követelményt


A Ruby két különféle módszert kínál a külső kódrészletek beépítésére a kódalapba, nevezetesen a betöltést és a követelményeket. Bár látszólag hasonlóak, vannak köztük finom különbségek. A terhelést azokra az esetekre kell használni, amikor az esemény minden változásához külső kódra van szükség. Másrészről, az igényel, hogy automatikusan szóljon, és a kódrészletek automatikus felvételére kell használni.

15. Hogyan kezeljük a feltételeket a rubinban?


A feltételes konstrukciók állnak a modern programozási nyelvek középpontjában. Ők irányítják a program folyamatát és végrehajtását. A legtöbb nyelv ma valamiféle (ha - akkor - cselekvési) konstrukciót kínál erre a célra. Ruby képes kezelni a feltételes feltételeket, ha a klasszikus konstrukció különböző variációit használja.

16. Hogyan működnek a hurkok a rubinban?


A ciklusok az iterációk előnyben részesített módja a programozók többségének. Ennek megkönnyítésére Ruby néhány különböző hurok konstrukciót kínál. Az alábbiakban rövid pillantást vetünk rájuk.

17. Hogyan működnek a szünetek a Ruby-ban?


A break konstrukció közös a főbb programozási nyelveken. Ugyanez működik a Ruby-ban is. A break utasítással szó szerint kiszabadulhat a hatókörből. A programozók gyakran visszahúzódnak a hurkok belsejéből és rekurzív funkciókból. Az alábbiakban bemutatjuk, hogyan lehet kitörni a for hurokból a Ruby-ban.

#!/ usr / bin / ruby ​​for i az [1, 2, 3, 4, 5] do-ban i-t tesz, ha i == 3 törés vége

Ez a kód 3-ig nyomtat, majd megszűnik. Ez azért történik, mert a „break” -et használtuk, amint az „i háromnak felel meg”.

18. Miért érdemes használni a következő állítást??


A Ruby következő állítása kiegészíti a break állítást. A hurok adott iterációjának kihagyására szolgál, és folytatja a következővel. Ez egyenértékű a C és a következő Perl folytatással. A következő parancs kihagyja a második iterációt, de továbblép a harmadikra.

#!/ usr / bin / ruby ​​i-re 1… 6-ban, ha i == 2, akkor a következő vég véget vet

Mivel a ciklusismétlésekkel kapcsolatos kérdések gyakoriak a rubininterjúk kérdéseiben, körültekintően válaszoljon rájuk.

19. Hogyan működnek az állítások újból?


Az Újra utasítások felhasználhatók a hurok egy bizonyos iterációjának újraértékelésére. A ciklus feltétele nem kerül végrehajtásra az újraírás utasítás esetén. Az alábbi részlet egy egyszerű példát mutat be.

mert i-re 1… 6-ban i i + = 1-et teszünk, és ha i == 2 véget értünk, akkor tesszük át

Ha növeli a számlálót a visszavonási utasítás után, soha nem hajtja végre. Tehát a program végtelen ciklusba esik. Ez gyakori hiba az új Ruby programozóknál.

20. Hogyan működnek az újrapróbálkozások?


Az újrapróbálkozás hasznos módja a hurok-ismétlések megismétlésének a Ruby-ban. Az újrapróbálkozás használata sok szezonális programozó számára sokszor kissé kihívást jelent.

#!/ usr / bin / ruby ​​i-re 0… 5 kezdetben "i = # i" emelést tesz, ha i> = 3 mentési újrapróbálkozás vége

Ez a kódrészlet végtelen ciklusba esik. Ez azért történik, mert az a feltétel, ha mindig igaznak bizonyul. És akkor az iteráció folytatja az ismétlést.

21. Hogyan kell használni a megjegyzéseket a Ruby-ban?


A megjegyzések elengedhetetlenek az olvashatóság és a dokumentáció szempontjából. Ruby támogatja a Python-szerű egysoros megjegyzést. Egyszerűen csatoljon egy # -ot a hozzászólni kívánt rész előtt.

# comment = 1 megjegyzést tesz

Meg kellene szereznie a NameError mivel a programodnak fogalma sincs az általad kommentált változóról. A többsoros megjegyzések a Ruby-ban is elérhetők.

= kezdet "hello" = véget tesz

Ez a kód nem lesz kiértékelve, és így nem nyomtat semmit.

22. A következő Ruby-nyilatkozat érvényes?


-> (a) p a ["Hello Univerzum"]

A fenti rubin állítás tökéletesen érvényes. Egyszerűen létrehoz egy proc-ot a gyorsírás (->) jelöléssel. Ez a proc is lambda. A paramétert vesz egy, kinyomtatja, elindítja a procot, és átadja a „Hello Universe” paramétert. Tehát az eredménynek egyszerűen „Hello Universe” -nek kell lennie.

23. Objektumok létrehozása a Ruby-ban?


Sok munkaadó szívesen kérdezne tárgyakról és osztályokról rubininterjú kérdéseik során. Szerencsére nagyon egyszerű egy osztály objektumait létrehozni a Ruby-ban. Egyszerűen meg kell adnia az objektum osztálynevét, és változókként tárolhatja.

object1 = className.új

Most az object1 az className osztály új példányát fogja tárolni.

24. Hogyan lehet osztályokat létrehozni a Ruby-ban?


Az osztályok az objektumok prototípusai. Meghatározza az ezeken megengedett módszereket is. Az objektum példányosítása előtt létre kell hoznia az osztályt. Az alábbi kódrészlet bemutatja, hogyan lehet egyszerű osztályt létrehozni a Ruby-ban.

class className # kód itt végződik

Most könnyen létrehozhat egy objektumot az előző kérdésben bemutatott módszerrel.

25. Hogyan hozzunk létre módszereket?


A rubin módszerek egyenértékűek más nyelvek, például a C és a Python funkcióival. Megakadályozza, hogy a programozók ugyanazokat a kódblokkokat írják a programjukba. Miután meghatározta a módszert, a program bármely részéről meghívhatja. Nézze meg a következő példát.

def Loop for i in 0… 10 véget vet a végén Loop ()

Most felhívhatja ezt a módszert az utolsó sorban látható módon, hogy a 0 és 9 közötti számokat kinyomtassa a forráskód bárhonnan.

26. Meg tudná magyarázni a Ruby különböző egyenlő üzemeltetőit?


A Ruby több egyenlő operátort biztosít a számok és az objektumok egyenlőségének ellenőrzésére. Minden operátornak kissé eltérő használati esetei vannak, amelyek elég gyakran megzavarják az új programozókat. Az alábbiakban négy különböző egyenlő operátort nézünk meg a Ruby-ban.

27. A Ruby-ban különbséget kell tenni a szuper és a szuper () között


Bár első ránézésre hasonló, a szuper és a szuper () meglehetősen különböznek egymástól. A szuperhívás a szülő metódust hívja meg azzal, hogy ugyanazokat az argumentumokat továbbítja a gyermek módszerhez. Gyakran váratlan viselkedéshez vezethet a szülő módszer paramétereinek esetleges eltérése miatt. A super () meghívása azonban közvetlenül a szülő metódust hívja meg, paraméterek átadása nélkül.

28. Hogyan adjuk át a referenciát a rubinban?


Ruby nem kínál mutatókat és ehhez kapcsolódó elhivatottságot. Ez azonban továbbra is lehetővé teszi a programozók számára, hogy a helyi változók helyett referenciákat adjanak át. Ez az ampersand (&) szimbólum segítségével történhet. Vessen egy pillantást az alábbi kódra, hogy megértse, hogyan működik ez rubinban.

#! Az / usr / bin / ruby ​​def módszer (& blokk) az "Ez a módszer" blokkot adja.call end method behelyezi "Ez a blokk hivatkozás"

Ha hibákat tapasztal, ellenőrizze a behúzást és a szóközöket.

29. Hogyan működnek a modulok a rubinban??


A Ruby moduljai konstansok és módszerek gyűjteményei. Osztályként definiálják őket, és sok hasonló tulajdonságban osztoznak, például osztálydefiníciókban, konstansokban és más modulokban. Ruby azonban nem engedélyezi objektumok létrehozását modulok használatával. Ezenkívül nincs támogatás az örökléshez.

A modul célja névterek biztosítása a névütközések megakadályozására. Ezenkívül lehetővé teszik a keverők számára, hogy megosszák a közös funkciókat az osztályok között.

30. Hogyan működnek Mixins a Ruby-ban?


Mivel Ruby nem kínál több örökséget az osztályobjektumoknak, a programozóknak erre más módszerre van szükségük. Tehát modulokat használnak a probléma megkerülésére. Bár a modulok nem példányosíthatók, könnyen felvehetők a különböző osztályokba. Tehát továbbra is hozzáférhet a modulban definiált módszerekhez úgy, hogy felveszi egy osztályba. A mixinek a nevüket az osztályon belüli modulok „mix-injeiből” kapják.

31. Lehetséges-e privát módszert hívni Ruby osztályon kívül??


Igen, Ruby-ban lehetséges. Egy osztály objektumát kell használnunk ahhoz, hogy metódust privátként meghívhassunk hozzá. Ez a küldési módszerrel történhet. Az alábbi kód ezt működés közben szemlélteti.

class ClassName private def metódus p "Ez egy privát módszer" vége

Most ezt a privát módszert hívhatjuk a Ruby tolmácsból az alábbi sor segítségével.

>> OsztályNév.új.send (: módszer)

32. Magyarázza el a különbségeket a Belefoglalás és a Bővítés között


Használhatja moduljait az include és a kiterjesztés utasítások használatával is. Ezek azonban meglehetősen különbözőek és meghatározott célokra használják. Röviden: az include hozzáadja a modul metódusokat az osztály objektumához, míg az expand hozzáadja az osztály metódusait.

33. Hogyan lehet elérni a Ruby karakterlánc-elemeit?


A húrok az egyik alapvető adattípus, amelyet a Ruby kínál. Bármi, amit „” körülvesz, egy karakterlánc a Ruby-ban. A Ruby karakterlánc elemeit könnyedén megszerezheti szögletes [] zárójelek segítségével. Az alábbi kódrészlet ezt szemlélteti.

#! / usr / bin / ruby ​​foo = "valami köze van a húrokhoz" length = foo.hossza i-re 0… foo.hossz p foo [i] vége

Ez a kódblokk egyenként kinyomtatja az adott karakterlánc összes karakterét a standard kimenetben.

34. Lehetséges-e többsoros húrokat írni rubinban??


Sok rubininterjú kérdés során az álláskeresőket megkérdezik, hogy lehet-e többsoros húrokat írni Ruby-ba. Bár lehet, hogy nem ismeri, lehetséges és könnyen elvégezhető. Az alábbiakban ennek három különböző módját mutatjuk be a Ruby-ban.

"R Ru Rub Ruby" helyezi a% / R Ru Rub Ruby / helyezést< 

35. Mi a különbség a klón és a dup között?


A Ruby két robusztus módszert kínál a programban lévő objektumok klónozásához / másolásához. Bár úgy tűnik, hogy ugyanazt csinálják, van némi különbség - a klónozásra való felhívás az egész objektumot átmásolja, beleértve a modulmixineket is. A dup azonban létrehoz egy sekély másolatot az Object-ről, és nem másol egyetlen mixet sem.

36. Hogyan lehet eltávolítani a nulla értékeket a rubin tömbökből?


Mivel a nulla érvényes típus a Ruby-ban, gyakran megtalálja az egész programjában. A programozóknak gondoskodniuk kell arról, hogy a lehető legtöbb ilyen eseményt eltávolítsák a kódalapjukról. Elég egyszerű megtalálni és eltávolítani ezeket a nulla értékeket a Ruby tömbjeiből. Az alábbi kódrészlet bemutatót nyújt.

arr = [nulla, "teszt", nulla, "teszt", nulla, "teszt"].kompakt tesz arr

Bár az arr konstrukció hat értékű objektumot rejt, ezek közül csak hármat nyomtat ki, amelyek nem null értékek. A kompakt módszer lehetővé teszi számunkra ezt.

37. Írjon egy Ruby programot a Fibonacci számok előállításához


Sok munkáltató szívesen tesz fel klasszikus számelméleti kérdéseket rubininterjúk során. A Fibonacci sorozat minden bizonnyal az egyik kedvenc a kérdezők között. A sorozat minden egyes száma az előző két számának összege. Az alábbi részlet egy egyszerű Fibonacci-sorozatot generálhat.

first_number = 0 second_number = 1 next_term = 0 "Hány kifejezés: -" n = kap.chomp.to_i "A Fibonacci sorozat első # n kifejezése: -" 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. Meg tudja különböztetni a Procs-t és a lambdát?


A procs és a lambdas is a bezárások része, egy függvény vagy kódblokk lexikális hatóköre. Csomagolásra vagy csoportkód-blokkokra használják az olvashatóság növelése érdekében. A blokkok szintén bezárások, de nem olyan tárgyak, mint a procik vagy a lambdák. A Procs és a lambdas a funkciókból is visszaküldhető. Ezek azonban egészen mások. Röviden, minden lambda procs, de nem minden procs lambda. A lambdák szigorúak a paraméterszámok ellenőrzésénél, de a procik nem. A Lambdas visszatérési értékei egyszerűen, míg a proc értékei a jelenlegi hatókörből származnak.

39. Hogyan lehet szabályozni a Ruby módszerek hozzáférési szintjeit?


A Ruby lehetővé teszi a programozók számára, hogy könnyen ellenőrizzék módszereik hozzáférési szintjét. Módszerét nyilvánossá, priváttá vagy védetté teheti. Így megadhatja, hogy mely objektumok mely módszerekhez férhetnek hozzá a program során. Ahogy a név is sugallja, a nyilvános módszereket bárki elérheti. A privát módszerek csak annak az osztálynak az objektumaihoz érhetők el, akikhez a módszerek tartoznak. A védett módszerek viszont csak az általa definiált osztály és annak alosztályai számára érhetők el.

40. Mik a drágakövek a rubinban?


A drágakövek már a kezdetek óta népszerű fogalommá váltak. A rubin drágakövek rubin programok csomagként terjesztve. Ezek kulcsfontosságú tényezők voltak Ruby sikere mögött. Nagyon egyszerű csomagolni az alkalmazást és megosztani / telepíteni drágakövek segítségével. Ennek a csomagkezelőnek az egyszerű, de produktív CLI felülete nagyon rugalmas, és lehetővé teszi a fejlesztők számára, hogy könnyedén csomagolják be programjukat. A Ruby gems csomagkezelő most beépül a szokásos Ruby futási idővel.

41. Mi a Rails Engine?


A potenciális jelölteket gyakran kérdezik a sínmotorokról a rubin on sínen interjúk során. A Rails Engine egy olyan mechanizmus, amely lehetővé teszi a programozók számára, hogy a sínek alkalmazását vagy egyes speciális funkcióit más alkalmazásokkal vagy nagyobb terjeszthető csomagok egy részével csomagolják. A Rails Motorokat mini-alkalmazásokként gondolhatja. Ezekhez a motorokhoz való hozzáférés a szerver útválasztási házirendjétől függ. Egyszerűen csatlakoztatja a motort, és az útválasztók is használhatják.

42. Hogyan fagyaszthatók le tárgyak a rubinban?


A Ruby lehetővé teszi a programozók számára, hogy lefagyasszák az objektumokat a programjaik végrehajtása során. Ez számos helyzetben jól jöhet. Az alábbi kódrészletek a Ruby-objektumok működés közbeni lefagyását mutatják be.

foo = "valami" foo.lefagy, ha (foo.fagyott? ) a "foo egy fagyott tárgy" szöveget helyezi el, a "foo pedig egy szabályos objektum" véget teszi

Tehát a fagyasztási módszert használják a tárgy fagyasztására és fagyasztására? hogy ellenőrizze az állapotát. Ha megjegyzi a második sort, akkor megkapja az else blokk kimenetét.

43. Beszélje meg a sínekben elérhető CRUD igéket


A CRUD a RESTful API-k alapvető építőköve. A Rails keretrendszer lehetővé teszi az összes fő CRUD műveletet. Az alábbiakban a Rails internetes igéket tárgyaljuk.

  • GET - ez az ige az oldalforrások lekérésére szolgál
  • POST - új erőforrások létrehozása és beküldése
  • PATCH / PUT - a meglévő erőforrások frissítése
  • TÖRLÉS - a megadott erőforrások eltávolítása

44. Mi a kapcsolat a szálak összevonása és a szál életciklusa között?


Az egyszálas életciklusok a Ruby-ban automatikusan elindulnak, amint a CPU-nak rendelkezésre állnak erőforrásai. Bár a szálak erőforrás-éhesek, jelentősen javíthatja a Ruby on Rails alkalmazás sebességét, ha egyszerre több szálat használ. A szálgyűjtési technikát széles körben használják több szál megszakítás nélküli megmunkálásának megkönnyítésére. Ebben a technikában több, már létező újrafelhasználható szálat várnak készenléti állapotban. Amikor új erőforrások állnak rendelkezésre, az új szálak automatikusan elindulnak.

45. Melyek a legjobb eszközök a Rails alkalmazások teszteléséhez?


Az álláskeresők egyik leggyakoribb rubininterjú-kérdése az eszközök teszteléséről szól. Mivel a Ruby on Rails-et széles körben használják nagyszabású webalkalmazások készítéséhez, a tesztelés rendkívül fontos része. Szerencsére jelentős számú előre elkészített eszköz létezik a tesztelés sebességének és eredményének növelése érdekében az új Ruby fejlesztők számára. Néhány népszerű és hasznos tesztelési eszköz a Rails számára -

  • rspec - egy tartományspecifikus eszköz a rubinkód tesztelésére
  • minitest - egy teljes értékű tesztkészlet, amely támogatja a TDD, BDD, benchmarking és gyors prototípus készítést.
  • test-unit - robusztus egység tesztelési keretrendszer a Ruby számára, az xUnit elvein alapul.
  • uborka - rugalmas Ruby eszköz a Ruby automatizált tesztjeinek futtatásához.

46. Hányféleképpen adhat hozzá elemeket a rubin tömbökhöz?


Amint arról már volt szó, a tömbök fontos adatstruktúra a Ruby-ban. Többféle módon lehet új elemeket hozzáadni egy már létező tömbhöz. Néhányat az alábbiakban mutatunk be.

foo = ["valami", "ufo", "mi?"] foo foo.nyomás ("bár") foo foo.az unshift ("newItem") foo foo.az insert (1, "anotherNewItem") foo

A push metódus új elemeket ad hozzá a tömb végén, az elején eltolja a váltást, és beillesztéssel elemeket adhat hozzá bármely megadott pozícióhoz.

47. Hányféleképpen távolíthatja el az elemeket a rubin tömbökből?


Az elemek eltávolítása a tömbökből szintén nem nagy ügy a Ruby-ban. A programozók különféle módszereket használhatnak erre. Az alábbiakban bemutatunk egy egyszerű bemutatót. Ez egy másik gyakori rubininterjú-kérdés része, amellyel szembesülhet.

foo = ["valami", "ufo", "mi?"," anotherNewItem "," newItem "," bar "] foo.a pop foo foo.műszak foo foo.törlés ("ufo") foo foo.uniq foo

Tehát a pop törli a tömb utolsó elemét, eltolja az elsőt, és töröl bizonyos elemeket. Az uniq módszer eltávolítja az ismétlődő elemeket a tömbből.

48. Hogyan lehet biztonságos adatokat tárolni a sínekben?


A Rails alkalmazások gyakran foglalkoznak bizalmas információkkal, például jelszavakkal, felhasználónevekkel, IP-címekkel. Rendkívül rossz ötlet ezeket az adatokat egyszerű szövegként tárolni. Az adatbiztonság érdekében mindig végezzen megfelelő méréseket. Harmadik féltől származó adatokat, például a fizetési és háttérinformációkat, olyan speciális szolgáltatásokon keresztül kell tárolni, mint a Stripe. Titkosítsa az adatbázis adatait tárolás előtt. Győződjön meg arról, hogy a hálózati adatokat biztonságos kapcsolatokkal küldi és fogadja a lehallgatás megakadályozása érdekében.

49. Hogyan kezeljük a fájlműveleteket a Ruby fájlban?


A többi programozási nyelvhez hasonlóan a fájlok és azok manipulálása is a Ruby programozás nagy részét alkotja. A Ruby robusztus könyvtárainak és beépített módszereinek köszönhetően a fájlok kezelése a Ruby-ban meglehetősen egyszerű. Nézze meg az alábbi kódrészletet, hogy megismerje néhány fájlműveletet.

new_file = Fájl.nyitott ("teszt.txt ") file_data = új_fájl.új_fájl olvasása.close file_data = Fájl.read ("teszt.txt ").split File.nyitott ("teszt.txt "," w ") | f | f.írja "# Idő.most - Új adatok írása \ n " fájl.írjon ("teszt.txt "," data… ", mód:" a ")

50. Hogyan kezelhetők a kivételek a Catch in Ruby használatával?


Sok rubininterjú kérdésben az interjúztatók azt kérdezik a jelöltektől, hogyan kell kezelniük a kivételeket a Ruby programokban. A többi modern nyelvhez hasonlóan a Ruby is lehetővé teszi a programozók számára, hogy lefuttassák a futásidejű hibákat, és kezeljék azokat anélkül, hogy összeomolnák a teljes alkalmazást. A szintaxis azonban némileg eltér a más nyelveken található try-catch utasításoktól.

dobás: Label_Name #… kód nem kerül végrehajtásra catch: Label_Name do #… végrehajtja a megfelelő fogást, ha a dobás megtörténik. vége

Gondolatok befejezése


Mivel a Ruby interjúk kérdései változhatnak a jelentkezett pozíciótól és a vállalattól függően, nehéz minden lehetséges kérdést egyetlen útmutatóba foglalni. Szerkesztőségeink azonban minden tőlük telhetőt megpróbáltak felvázolni a Ruby on Rails interjúval kapcsolatos leggyakrabban feltett kérdéseket, amelyek elősegítik az előkészületeket. Ha még nem ismeri a Ruby-t, javasoljuk, hogy ne kezdjen bele egyenesen összetett kérdésekbe vagy technikákba. Ehelyett mindig meg kell próbálnia elsajátítani az alapokat és egyszerű valós projekteket készíteni. Ez sokkal könnyebben segít megküzdeni az interjúkkal. Tartson velünk további útmutatókért az igényes CS munkákról.

A League of Legends telepítése az Ubuntu 14-re.04
Ha rajongsz a League of Legendsért, akkor ez egy lehetőség arra, hogy teszteld a League of Legends játékot. Ne feledje, hogy a LOL a PlayOnLinux rends...
Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...
Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...