
Ruby-Metaprogrammierung
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Was ist Metaprogrammierung in Ruby?
Was ist Metaprogrammierung in Ruby?
Antwort
Metaprogrammierung ist die Fähigkeit eines Programms, Code zur Laufzeit zu schreiben oder zu verändern. In Ruby ermöglicht dies das dynamische Definieren von Methoden, Klassen und Modulen, wodurch der Code flexibler und kompakter wird. Diese Technik wird in Frameworks wie Rails häufig eingesetzt, um elegante DSLs zu erstellen und Codeduplizierung zu reduzieren.
2Was ist der Zweck der define_method-Methode in Ruby?
Was ist der Zweck der define_method-Methode in Ruby?
Antwort
define_method ermöglicht das dynamische Erstellen von Methoden zur Laufzeit. Es nimmt einen Methodennamen (Symbol oder String) und einen Block entgegen, der den Methodenrumpf definiert. Anders als def erfasst define_method lokale Variablen aus dem umgebenden Scope über eine Closure, was nützlich ist, um Methoden mit parametrisiertem Verhalten zu erzeugen.
3Wann wird die method_missing-Methode von Ruby aufgerufen?
Wann wird die method_missing-Methode von Ruby aufgerufen?
Antwort
method_missing wird automatisch aufgerufen, wenn ein Objekt einen Methodenaufruf erhält, der in seiner Vererbungskette nicht existiert. Sie erhält den Namen der aufgerufenen Methode und deren Argumente, wodurch diese Aufrufe dynamisch behandelt werden können. Dies ist die Grundlage vieler Metaprogramming-Muster wie der in ActiveRecord verwendeten Ghost Methods.
Was ist der Hauptunterschied zwischen class_eval und instance_eval?
Welcher Hook wird aufgerufen, wenn ein Module in eine Klasse eingebunden wird?
+17 Interview-Fragen
Weitere Ruby on Rails-Interviewthemen
Ruby-Grundlagen
Objektorientierte Programmierung in Ruby
Rails-Grundlagen
Routing & Controllers
ActiveRecord-Grundlagen
Views & ERB-Templates
ActiveRecord-Assoziationen
Fortgeschrittene ActiveRecord-Abfragen
Rails-Formulare
Authentifizierung & Autorisierung
Moderne Asset Pipeline & Frontend
Rails API-Modus
Testen mit RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Caching-Strategien
Fortgeschrittene Migrationen
Rails Engines & modulare Apps
Performance-Optimierung
Rails Design Patterns
Rails-Sicherheit
GraphQL mit Rails
Deployment & Produktion
Monitoring & Logging
Rails-Upgrade-Strategien
Meistere Ruby on Rails für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten