# Métaprogrammation Ruby (Ruby on Rails) > define_method, method_missing, class_eval, instance_eval, hooks, DSLs - 20 questions d'entretien - Senior - [Questions d'entretien: Ruby on Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien.md) ## 1. 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. ## 2. 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. ## 3. 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. ## 17 questions supplémentaires disponibles - Quelle est la différence principale entre class_eval et instance_eval ? - Quel hook est appelé lorsqu'un module est inclus dans une classe ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Ruby on Rails - [Les bases de Ruby](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/ruby-basics.md): 25 questions, Junior - [Programmation orientée objet en Ruby](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/ruby-oop.md): 20 questions, Junior - [Fondamentaux Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-fundamentals.md): 18 questions, Junior - [Routing & Controllers](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/routing-controllers.md): 22 questions, Junior - [Les bases d'ActiveRecord](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/active-record-basics.md): 25 questions, Junior - [Views & Templates ERB](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/views-erb-templates.md): 20 questions, Junior - [Associations ActiveRecord](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/active-record-associations.md): 24 questions, Confirmé - [Requêtes ActiveRecord avancées](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/active-record-queries.md): 28 questions, Confirmé - [Formulaires Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-forms.md): 20 questions, Confirmé - [Authentification & Autorisation](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/authentication-authorization.md): 22 questions, Confirmé - [Asset Pipeline & Frontend moderne](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-asset-pipeline.md): 18 questions, Confirmé - [Rails en mode API](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-api-mode.md): 20 questions, Confirmé - [Tests avec RSpec](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-testing-rspec.md): 24 questions, Confirmé - [ActiveJob & Background Jobs](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/active-job-background-jobs.md): 20 questions, Confirmé - [ActionCable & WebSockets](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/action-cable-websockets.md): 18 questions, Confirmé - [ActionMailer](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/action-mailer.md): 18 questions, Confirmé - [ActiveStorage](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/active-storage.md): 20 questions, Confirmé - [Stratégies de caching](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/caching-strategies.md): 20 questions, Confirmé - [Migrations avancées](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/database-migrations-advanced.md): 20 questions, Confirmé - [Rails Engines & Apps modulaires](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-engines-modular-apps.md): 18 questions, Senior - [Optimisation des performances](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/performance-optimization.md): 26 questions, Senior - [Design Patterns Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-design-patterns.md): 22 questions, Senior - [Sécurité Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-security.md): 22 questions, Senior - [GraphQL avec Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/graphql-rails.md): 20 questions, Senior - [Déploiement & Production](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-deployment-production.md): 20 questions, Senior - [Monitoring & Logging](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/monitoring-logging.md): 20 questions, Senior - [Stratégies d'upgrade Rails](https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/rails-upgrade-strategies.md): 18 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/ruby-on-rails/questions-entretien/ruby-metaprogramming