Top 53 des questions et réponses des entretiens avec Ruby on Rails (2024)

Voici les questions et réponses d'entretien Ruby on Rails pour les débutants ainsi que les candidats développeurs Ruby expérimentés pour obtenir l'emploi de leurs rêves.

1) Expliquez qu'est-ce que Ruby on Rails ?

  • Rubis: Il s'agit d'un langage de programmation orienté objet inspiré de PERL, Smalltalk, Eiffel, Ada, Basic et Lisp.
  • Des rails: C'est un framework utilisé pour créer une application Web

2) Expliquez ce que sont les bibliothèques de classes dans Ruby ?

Les bibliothèques de classes dans Ruby se composent d'une variété de domaines, tels que les types de données, la programmation des threads, divers domaines, etc.

Téléchargement PDF gratuit : Questions et réponses d'entretien avec Ruby on Rails


3) Mentionnez quelle est la convention de dénomination dans Rails ?

  • Variables: Pour déclarer des variables, toutes les lettres sont en minuscules et les mots sont séparés par des traits de soulignement
  • Classe et module : Les modules et classes utilisent MixedCase et n'ont pas de trait de soulignement ; chaque mot commence par une lettre majuscule
  • Tableau de la base de données : Le nom de la table de base de données doit contenir des lettres minuscules et un trait de soulignement entre les mots, et tous les noms de table doivent être au pluriel, par exemple bill_items.
  • Modèle: Il est représenté par MixedCase ininterrompu et a toujours un singulier avec le nom de la table
  • Contrôleur: Les noms de classe de contrôleur sont représentés au pluriel, de sorte que OrdersController soit le contrôleur de la table de commande.

4) Expliquez ce qu'est le « rendement » dans Ruby on Rails ?

Une méthode Ruby qui reçoit un bloc de code l'invoque en l'appelant avec le "Yield".


5) Expliquez qu'est-ce que l'ORM (Object-Relationship-Model) dans Rails ?

ORM ou Object Relationship Model dans Rails indique que vos classes sont mappées à la table de la base de données et que les objets sont directement mappés aux lignes de la table.


6) Mentionnez quelle est la différence entre faux et nul dans Ruby ?

En Ruby, false est un objet de FalseClass pour représenter une valeur booléenne, tandis que Nil est un objet de NilClass qui indique l'absence de valeur. Il a un object_id 4.

Questions d'entretiens chez Ruby on Rails
Questions d'entretiens chez Ruby on Rails


7) Mentionnez quels sont les aspects positifs de Rails ?

Rails fournit de nombreuses fonctionnalités telles que

  • Méta-programmation : Rails utilise la génération de code, mais pour les gros travaux, il s'appuie sur la méta-programmation. Ruby est considéré comme l'un des meilleurs langages pour la méta-programmation.
  • Enregistrement actif : Il enregistre l'objet dans la base de données via Active Record Framework. La version Rails d'Active Record identifie la colonne dans un schéma et la lie automatiquement aux objets de votre domaine à l'aide de la métaprogrammation
  • Échafaudage: Rails a la capacité de créer automatiquement un échafaudage ou du code temporaire
  • Convention sur la configuration: Contrairement à d'autres frameworks de développement, Rails ne nécessite pas beaucoup de configuration, si vous suivez attentivement la convention de dénomination.
  • Trois environnements : Rails est livré avec trois environnements de test, de développement et de production par défaut.
  • Tests intégrés : Il prend en charge le code appelé harnais et les accessoires qui créent des cas de test à écrire et à exécuter.

8) Expliquez quel est le rôle des sous-répertoires app/controllers et app/helpers ?

  • Application/contrôleurs : une demande Web de l'utilisateur est traitée par le contrôleur. Le sous-répertoire du contrôleur est l'endroit où Rails cherche à trouver les classes de contrôleur
  • App/helpers : le sous-répertoire de l'assistant contient toutes les classes d'assistance utilisées pour assister les classes de vue, de modèle et de contrôleur.

9) Mentionnez quelle est la différence entre une chaîne et un symbole ?

Ils agissent tous les deux de la même manière, mais ils diffèrent par leurs comportements opposés. La différence réside dans l'object_id, la mémoire et le processus lorsqu'ils sont utilisés ensemble. Le symbole appartient à la catégorie des objets immuables alors que les chaînes sont considérées comme des objets mutables.


10) Expliquez en quoi le symbole est différent des variables ?

Le symbole est différent des variables dans les aspects suivants

  • Cela ressemble plus à une chaîne qu'à une variable
  • Dans Ruby, la chaîne est mutable mais un symbole est immuable
  • Une seule copie du symbole doit être créée
  • Les symboles sont souvent utilisés comme correspondant aux énumérations dans Ruby

11) Expliquez ce qu'est l'enregistrement actif Rails dans Ruby on Rails ?

L'enregistrement actif Rails est la couche de mappage objet/relationnel (ORM) fournie avec Rails. Il suit le modèle ORM standard tel que

  • Plan du tableau vers les classes
  • Les lignes correspondent aux objets
  • Les colonnes correspondent aux attributs d'objet

12) Expliquez comment Rails implémente Ajax?

La page Web alimentée par Ajax récupère la page Web du serveur qui est nouvelle ou modifiée contrairement aux autres pages Web où vous devez actualiser la page pour obtenir les dernières informations.

Rails déclenche une opération Ajax des manières suivantes

  • Quelques déclencheurs d'incendies : Le déclencheur peut être un utilisateur cliquant sur un lien ou un bouton, les utilisateurs induisant des modifications des données dans le champ ou sur un formulaire
  • Le client Web appelle le serveur : Une méthode Java-script, XMLHttpRequest, envoie les données liées au déclencheur à un gestionnaire d'actions sur le serveur. Les données peuvent être l'ID d'une case à cocher, l'intégralité du formulaire ou le texte dans le champ de saisie.
  • Le serveur traite : Le gestionnaire d'actions côté serveur fait quelque chose avec les données et récupère un HTML fragment au client Web
  • Le client reçoit la réponse : Le JavaScript côté client, que Rails génère automatiquement, reçoit le fragment HTML et l'utilise pour mettre à jour une partie particulière du fichier actuel.

13) Mentionnez comment vous pouvez créer un contrôleur pour le sujet ?

Pour créer un contrôleur pour le sujet, vous pouvez utiliser la commande suivante

C:\ruby\library> ruby ​​script/générer le sujet du contrôleur


14) Mentionnez qu'est-ce que la migration Rails ?

Rails Migration permet à Ruby d'apporter des modifications au schéma de la base de données, ce qui permet d'utiliser un système de contrôle de version pour laisser les choses synchronisées avec le code réel.


15) Énumérez ce que Rails Migration peut faire ?

Rails Migration peut faire les choses suivantes

  • Créer une table
  • Drop table
  • Renommer la table
  • Ajouter une colonne
  • Renommer la colonne
  • Changer de colonne
  • Supprimer la colonne et ainsi de suite

16) Mentionnez quelle est la commande pour créer une migration ?

Pour créer la commande de migration inclut

C:\ruby\application>script ruby/générer nom_table de migration


17) Expliquez quand les méthodes self.up et self.down sont utilisées ?

Lors de la migration vers une nouvelle version, auto.up méthode est utilisée alors que auto.vers le bas La méthode est utilisée pour annuler mes modifications si nécessaire.


18) Mentionnez quel est le rôle du contrôleur Rails ?

Le contrôleur Rails est le centre logique de l'application. Il facilite l'interaction entre les utilisateurs, les vues et le modèle. Il exerce également d'autres activités comme

  • Il est capable d’acheminer les requêtes externes vers des actions internes. Il gère extrêmement bien l'URL
  • Il régule les modules d'assistance, qui étendent les capacités des modèles de vue sans alourdir leur code.
  • Il réglemente les séances ; qui donne aux utilisateurs l'impression d'une interaction continue avec nos applications

19) Mentionnez quelle est la différence entre "HashWithIndifferent" d'Active support et "Hash" de Ruby ?

Le Hash la classe dans la bibliothèque principale de Ruby renvoie la valeur en utilisant un standard "= =" comparaison sur les touches. Cela signifie que la valeur stockée pour un symbole La clé ne peut pas être récupérée à l’aide de la chaîne équivalente. Tandis que le HachageAvecAccèsIndifférent traite les clés de symbole et les clés de chaîne comme équivalentes.


20) Expliquez ce qu'est la falsification de requêtes intersites (CSRF) et comment Rails est protégé contre cette falsification ?

CSRF est une forme d'attaque dans laquelle un pirate informatique soumet une demande de page en votre nom sur un autre site Web, causant des dommages ou révélant vos données sensibles. Pour vous protéger des attaques CSRF, vous devez ajouter « protéger_de_la_forgerie » à ta Contrôleur d'application. Cela obligera Rails à exiger un jeton CSRF pour traiter la demande. Le jeton CSRF est donné sous forme de champ caché dans chaque formulaire créé à l'aide des générateurs de formulaires Rails.


21) Expliquez qu'est-ce que Mixin dans Rails ?

Mixin dans Ruby offre une alternative aux héritages multiples, l'utilisation de modules mixin peut être importée dans une autre classe.


22) Expliquez comment vous définissez la variable d'instance, la variable globale et la variable de classe dans Ruby ?

  • La variable d'instance Ruby commence par — @
  • Les variables de classe Ruby commencent par — @@
  • Les variables Ruby Global commencent par - $

23) Expliquez comment exécuter une application Rails sans créer de bases de données ?

Vous pouvez exécuter votre application en décommentant la ligne dans environnement.rb

path=> chemin racine conf/environment.rb

config.frameworks = [ action_web_service, :action_mailer, :active_record]

24) Mentionnez quelle est la différence entre les observateurs et les rappels dans Ruby on Rails ?

  • Observateurs ferroviaires : Observers est identique à Callback, mais il est utilisé lorsque la méthode n'est pas directement associée au cycle de vie de l'objet. De plus, l’observateur vit plus longtemps et peut être détaché ou attaché à tout moment. Par exemple, afficher les valeurs d'un modèle dans l'interface utilisateur et mettre à jour le modèle à partir de l'entrée de l'utilisateur.
  • Rappel des rails : Les rappels sont des méthodes qui peuvent être appelées à certains moments du cycle de vie d'un objet, par exemple lorsqu'un objet est validé, créé, mis à jour, supprimé. Un rappel est de courte durée. Par exemple, exécuter un thread et effectuer un rappel qui est appelé lorsque le thread se termine

25) Expliquez ce qu'est le rake dans Rails ?

Rake est une marque Ruby ; il s'agit d'un utilitaire Ruby qui remplace l'utilitaire Unix 'make' et utilise un 'Rakefile' et des '.rake files' pour constituer une liste de tâches. Dans Rails, Rake est utilisé pour les tâches d'administration normales comme la migration de la base de données via des scripts, le chargement d'un schéma dans la base de données, etc.


26) Expliquez comment vous pouvez répertorier toutes les routes pour une application ?

Pour répertorier toutes les routes d'une application, vous pouvez écrire des routes de râteau dans le terminal.


27) Expliquez ce qu'est le balayeur dans Rails ?

Les balayeurs sont responsables de l'expiration ou de la fermeture des caches lorsque l'objet du modèle change.


28) Mentionnez le journal qui doit être vu pour signaler des erreurs dans Ruby Rails ?

Rails signalera les erreurs d'Apache dans le journal/Apache.log et les erreurs du code Ruby dans log/development.log.


29) Expliquez quelle est la différence entre les échafaudages dynamiques et statiques ?

Échafaudage dynamique Échafaudage statique
  • Il crée automatiquement l'intégralité du contenu et de l'interface utilisateur au moment de l'exécution
  • Il permet de générer de nouvelles méthodes de suppression et de modification à utiliser dans l'application.
  • Il n'a pas besoin d'une base de données pour être synchronisé
  • Il nécessite une saisie manuelle dans la commande pour créer les données avec leurs champs
  • Il n’est pas nécessaire qu’une telle génération ait lieu
  • Il nécessite la migration de la base de données

30) Mentionnez quelle est la fonction du garbage collection dans Ruby on Rails ?

Les fonctions de garbage collection dans Ruby on Rails incluent

  • Il permet de supprimer les valeurs de pointeur qui restent à la fin de l'exécution du programme.
  • Cela libère le programmeur du suivi de l'objet créé dynamiquement lors de l'exécution.
  • Cela donne l'avantage de supprimer les objets inaccessibles de la mémoire et permet à d'autres processus d'utiliser la mémoire.

31) Mentionnez quelle est la différence entre la redirection et le rendu dans Ruby on Rails ?

  • La redirection est une méthode utilisée pour émettre le message d'erreur au cas où la page ne serait pas émise ou trouvée par le navigateur. Il indique au navigateur de traiter et d'émettre une nouvelle demande.
  • Le rendu est une méthode utilisée pour créer le contenu. Le rendu ne fonctionne que lorsque le contrôleur est correctement configuré avec les variables qui doivent être rendues.

32) Mentionnez quel est le but des RJ dans Rails ?

RJs est un modèle qui produit du JavaScript qui est exécuté dans un bloc eval par le navigateur en réponse à une requête AJAX. Il est parfois utilisé pour définir le JavaScript, le prototype et les assistants fournis par Rails.


33) Expliquez qu'est-ce que l'association polymorphe dans Ruby on Rails ?

L'association polymorphe permet à un objet ActiveRecord d'être connecté à plusieurs objets ActiveRecord. Un exemple parfait d'association polymorphe est un site social sur lequel les utilisateurs peuvent commenter n'importe où, qu'il s'agisse de vidéos, de photos, de liens, de mises à jour de statut, etc. Cela ne serait pas réalisable si vous deviez créer un commentaire individuel comme photos_comments, videos_comment, etc. .


34) Mentionnez quelles sont les limites de Ruby on Rails ?

Ruby on Rails a été conçu pour créer une application Web CRUD à l'aide de MVC. Cela pourrait rendre Rails inutile pour les autres programmeurs. Certaines des fonctionnalités que Rails ne prend pas en charge incluent

  • Clé étrangère dans les bases de données
  • Liaison à plusieurs bases de données à la fois
  • Services Web de savon
  • Connexion à plusieurs serveurs de base de données à la fois

35) Mentionnez quelle est la différence entre appeler super() et super call ?

  • super(): Un appel à super() appelle la méthode parent sans aucun argument, comme on peut s'y attendre. Comme toujours, être explicite dans votre code est une bonne chose.
  • super appel: Un appel à super appelle la méthode parent avec les mêmes arguments qui ont été transmis à la méthode enfant. Une erreur se produira donc si les arguments passés à la méthode enfant ne correspondent pas à ce qu'attend le parent.

36) Expliquez-nous Dig, Float et Max ?

  • La classe Float est utilisée chaque fois que la fonction change constamment.
  • Dig est utilisé chaque fois que vous souhaitez représenter un flottant en chiffres décimaux.
  • Max est utilisé chaque fois qu'il y a un énorme besoin de Float.

37) Expliquez comment pouvons-nous définir les expressions régulières Ruby ?

L'expression régulière Ruby est une séquence spéciale de caractères qui vous aide à faire correspondre ou à trouver d'autres chaînes. Un littéral d'expression régulière est un modèle entre des délimiteurs arbitraires ou des barres obliques suivis de %r.


38) Expliquez quel est l'opérateur défini ?

L’opérateur Définir indique si une expression passée est définie ou non. Si l'expression est définie, elle renvoie la chaîne de description et si elle n'est pas définie, elle renvoie une valeur nulle.


39) Énumérez les quelques fonctionnalités de Ruby ?

  • Format libre - Vous pouvez commencer à écrire à partir du programme à partir de n'importe quelle ligne et colonne
  • Sensible à la casse – Les lettres majuscules et minuscules sont distinctes
  • Commentaires – Tout ce qui est suivi d'un non cité #, jusqu'à la fin de la ligne sur laquelle il apparaît, est ignoré par l'interprète
  • Délimiteurs d'instructions - Plusieurs instructions sur une ligne doivent être séparées par des points-virgules, mais elles ne sont pas obligatoires à la fin d'une ligne.

40) Mentionner les types de variables disponibles dans Ruby Class ?

Les types de variables disponibles dans Ruby Class sont,

  • Variables locales
  • Variables globales
  • Variables de classe
  • Variables d'instance

41) Expliquez comment déclarer un bloc dans Ruby ?

Dans Ruby, le code du bloc est toujours entre accolades ({}). Vous pouvez invoquer un bloc en utilisant « instruction de rendement ».


42) Expliquez quelle est la différence entre les instructions put et putc ?

Contrairement à l'instruction put, qui affiche la chaîne entière à l'écran. L'instruction Putc peut être utilisée pour afficher un caractère à la fois.


43) Expliquez ce qu'est une bibliothèque de classes dans Ruby ?

Les bibliothèques de classes Ruby se composent d'une variété de domaines, tels que la programmation de threads, les types de données, divers domaines, etc. Ces classes offrent des fonctionnalités flexibles à un haut niveau d'abstraction, vous donnant la possibilité de créer de puissants scripts Ruby utiles dans une variété de problèmes. domaines. Les domaines suivants qui disposent de bibliothèques de classes pertinentes sont :

  • Programmation GUI
  • Programmation réseau
  • Programmation CGI
  • Traitement de texte

44) Dans Ruby, cela explique l'opérateur défini ?

L'opérateur défini indique si une expression passée est définie ou non. Si l'expression n'est pas définie, elle donne null, et si l'expression est définie, elle renvoie la chaîne de description.


45) Mentionnez quelle est la différence de portée entre ces deux variables : @@name et @name ?

La différence de portée pour ces deux variables est la suivante :

  • @@name est une variable de classe
  • @name est une variable d'instance

46) Mentionnez quelle est la syntaxe de Ruby collect Iterator ?

La syntaxe de Ruby collect Iterator collection = collection.collect.


47) Dans le code Ruby, on observe souvent que le codeur utilise une forme abrégée en utilisant une expression comme tableau.map(&:method_name) au lieu de array.map { |element| element.method_name }. Comment cette astuce fonctionne-t-elle réellement ?

Lorsqu'un paramètre est passé avec « & » devant lui. Ruby appellera to_proc dessus pour tenter de le rendre utilisable en tant que bloc. Ainsi, le symbole to_Proc invoquera la méthode du nom correspondant sur tout ce qui lui est transmis. Cela aide ainsi notre astuce de sténographie à fonctionner.


48) Expliquez qu'est-ce que l'interpolation dans Ruby ?

L'interpolation Ruby est le processus d'insertion d'une chaîne dans un littéral. En plaçant un hachage (#) entre {} crochets ouvrant et fermant, on peut interpoler une chaîne dans le littéral.


49) Mentionnez quelle est la notation utilisée pour désigner les variables de classe dans Ruby ?

En Rubis,

  • Une constante doit commencer par une lettre majuscule et elle ne doit pas être définie dans une méthode
  • Un local doit commencer par le signe de soulignement _ ou une lettre minuscule
  • Une variable globale doit commencer par le signe $. Un global non initialisé a la valeur « nil » et il devrait augmenter un avertissement. Il peut être référencé n’importe où dans le programme.
  • Une variable de classe doit commencer par double @@ et doit d'abord être initialisée avant d'être utilisée dans une définition de méthode

50) Mentionnez quelle est la différence entre les Procs et les Blocks ?

La différence entre les Procs et les Blocks,

  • Block n'est qu'une partie de la syntaxe d'une méthode alors que proc a les caractéristiques d'un bloc
  • Les processus sont des objets, les blocs ne le sont pas
  • Au plus un bloc peut apparaître dans une liste d'arguments
  • Seul le bloc ne peut pas être stocké dans une variable alors que Proc peut

51) Mentionnez quelle est la différence entre un guillemet simple et un guillemet double ?

Les chaînes entre guillemets simples ne traitent pas les codes d'échappement ASCII et n'effectuent pas d'interpolation de chaîne.


52) Mentionnez quelle est la différence entre une gemme et un plugin dans Ruby ?

  • Gemme: Une gemme n’est qu’un code rubis. Il est installé sur une machine et est disponible pour toutes les applications Ruby exécutées sur cette machine.
  • Brancher: Le plugin est également du code Ruby, mais il est installé dans le dossier de l'application et disponible uniquement pour cette application spécifique.

53) Mentionnez quelle est la différence entre étendre et inclure ?

Le « include » rend les méthodes du module disponibles à l'instance d'une classe, tandis que « extend » rend ces méthodes disponibles à la classe elle-même.

Ces questions d'entretien vous aideront également dans votre soutenance

Partager

14 Commentaires

  1. Avatar Hasanuzzaman Sumon dit:

    Le rendement n’est pas une fonction. C'est le mot-clé ruby ​​qui est utilisé pour exécuter le bloc.

    1. Plus précisément, rendement passera le contrôle du thread (Main.thread très probablement) au bloc qui a été transmis explicitement en tant que paramètre, c'est-à-dire def my_method(&my_block). Ou bien un bloc aurait pu être passé implicitement, tel que

      ma_classe.ma_méthode faire
      # le code de ce bloc sera cédé à l'intérieur de la méthode appelante
      fin

  2. Avatar Jorge Armando dit:

    à la question n°6, dans Ruby, il n'y a pas de classe « Booléenne », donc pas de « type Booléen ». Il n'y a que la TrueClass et la FalseClass.

  3. en fait Thread.main… mon mauvais :)

  4. Ruby n'est pas inspiré de Python, il a été inspiré par les éléments suivants (Perl, Smalltalk, Eiffel, Ada, BASIC et Lisp)

Soyez sympa! Laissez un commentaire

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *