
Métaprogrammation Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Qu'est-ce que la métaprogrammation en Ruby ?
Qu'est-ce que la métaprogrammation en Ruby ?
Réponse
La métaprogrammation est la capacité d'un programme à écrire ou modifier du code au moment de l'exécution. En Ruby, cela permet de définir dynamiquement des méthodes, des classes et des modules, rendant le code plus flexible et concis. Cette technique est largement utilisée dans les frameworks comme Rails pour créer des DSLs élégants et réduire la duplication de code.
2Quel est le rôle de la méthode define_method en Ruby ?
Quel est le rôle de la méthode define_method en Ruby ?
Réponse
define_method permet de créer des méthodes dynamiquement à l'exécution. Elle prend un nom de méthode (symbole ou chaîne) et un bloc définissant le corps de la méthode. Contrairement à def, define_method capture les variables locales du scope englobant via une closure, ce qui est utile pour générer des méthodes avec des comportements paramétrés.
3Quand la méthode method_missing est-elle invoquée par Ruby ?
Quand la méthode method_missing est-elle invoquée par Ruby ?
Réponse
method_missing est appelée automatiquement lorsqu'un objet reçoit un appel de méthode qui n'existe pas dans sa chaîne d'héritage. Elle reçoit le nom de la méthode appelée et ses arguments, permettant de gérer dynamiquement ces appels. C'est la base de nombreux patterns de métaprogrammation comme les ghost methods utilisées dans ActiveRecord.
Quelle est la différence principale entre class_eval et instance_eval ?
Quel hook est appelé lorsqu'un module est inclus dans une classe ?
+17 questions d'entretien
Autres sujets d'entretien Ruby on Rails
Les bases de Ruby
Programmation orientée objet en Ruby
Fondamentaux Rails
Routing & Controllers
Les bases d'ActiveRecord
Views & Templates ERB
Associations ActiveRecord
Requêtes ActiveRecord avancées
Formulaires Rails
Authentification & Autorisation
Asset Pipeline & Frontend moderne
Rails en mode API
Tests avec RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Stratégies de caching
Migrations avancées
Rails Engines & Apps modulaires
Optimisation des performances
Design Patterns Rails
Sécurité Rails
GraphQL avec Rails
Déploiement & Production
Monitoring & Logging
Stratégies d'upgrade Rails
Maîtrise Ruby on Rails pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement