
Metaprogramowanie w Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Czym jest metaprogramowanie w Ruby?
Czym jest metaprogramowanie w Ruby?
Odpowiedź
Metaprogramowanie to zdolność programu do pisania lub modyfikowania kodu w czasie wykonywania. W Ruby umożliwia to dynamiczne definiowanie metod, klas i modułów, czyniąc kod bardziej elastycznym i zwięzłym. Technika ta jest szeroko stosowana we frameworkach takich jak Rails do tworzenia eleganckich DSL i ograniczania duplikacji kodu.
2Jaki jest cel metody define_method w Ruby?
Jaki jest cel metody define_method w Ruby?
Odpowiedź
define_method pozwala tworzyć metody dynamicznie w czasie wykonania. Przyjmuje nazwę metody (symbol lub łańcuch znaków) oraz blok definiujący ciało metody. W przeciwieństwie do def, define_method przechwytuje zmienne lokalne z otaczającego zakresu poprzez closure, co jest przydatne do generowania metod o sparametryzowanym zachowaniu.
3Kiedy metoda method_missing jest wywoływana przez Ruby?
Kiedy metoda method_missing jest wywoływana przez Ruby?
Odpowiedź
method_missing jest wywoływana automatycznie, gdy obiekt otrzymuje wywołanie metody, która nie istnieje w jego łańcuchu dziedziczenia. Otrzymuje nazwę wywołanej metody oraz jej argumenty, co umożliwia dynamiczną obsługę tych wywołań. Stanowi to podstawę wielu wzorców metaprogramming, takich jak ghost methods używane w ActiveRecord.
Jaka jest główna różnica między class_eval a instance_eval?
Który hook jest wywoływany, gdy module jest dołączany do klasy?
+17 pytań z rozmów
Inne tematy rekrutacyjne Ruby on Rails
Podstawy Ruby
Programowanie obiektowe w Ruby
Podstawy Rails
Routing & Controllers
Podstawy ActiveRecord
Widoki i szablony ERB
Asocjacje ActiveRecord
Zaawansowane zapytania ActiveRecord
Formularze Rails
Uwierzytelnianie i autoryzacja
Nowoczesny Asset Pipeline i frontend
Tryb API Rails
Testowanie z RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie cachowania
Zaawansowane migracje
Rails Engines i aplikacje modułowe
Optymalizacja wydajności
Wzorce projektowe w Rails
Bezpieczeństwo Rails
GraphQL z Rails
Wdrażanie i Produkcja
Monitoring & Logging
Strategie aktualizacji Rails
Opanuj Ruby on Rails na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo