# Metaprogramowanie w Ruby (Ruby on Rails) > define_method, method_missing, class_eval, instance_eval, hooks, DSLs - 20 pytań z rozmów - Senior - [Pytania z rozmów: Ruby on Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne.md) ## 1. 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. ## 2. 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. ## 3. 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. ## Jeszcze 17 dostępnych pytań - 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? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Ruby on Rails - [Podstawy Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-basics.md): 25 pytań, Junior - [Programowanie obiektowe w Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-oop.md): 20 pytań, Junior - [Podstawy Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-fundamentals.md): 18 pytań, Junior - [Routing & Controllers](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/routing-controllers.md): 22 pytań, Junior - [Podstawy ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-basics.md): 25 pytań, Junior - [Widoki i szablony ERB](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/views-erb-templates.md): 20 pytań, Junior - [Asocjacje ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-associations.md): 24 pytań, Mid-Level - [Zaawansowane zapytania ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-queries.md): 28 pytań, Mid-Level - [Formularze Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-forms.md): 20 pytań, Mid-Level - [Uwierzytelnianie i autoryzacja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/authentication-authorization.md): 22 pytań, Mid-Level - [Nowoczesny Asset Pipeline i frontend](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-asset-pipeline.md): 18 pytań, Mid-Level - [Tryb API Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-api-mode.md): 20 pytań, Mid-Level - [Testowanie z RSpec](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-testing-rspec.md): 24 pytań, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-job-background-jobs.md): 20 pytań, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-cable-websockets.md): 18 pytań, Mid-Level - [ActionMailer](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-mailer.md): 18 pytań, Mid-Level - [ActiveStorage](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-storage.md): 20 pytań, Mid-Level - [Strategie cachowania](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/caching-strategies.md): 20 pytań, Mid-Level - [Zaawansowane migracje](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/database-migrations-advanced.md): 20 pytań, Mid-Level - [Rails Engines i aplikacje modułowe](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-engines-modular-apps.md): 18 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/performance-optimization.md): 26 pytań, Senior - [Wzorce projektowe w Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-design-patterns.md): 22 pytań, Senior - [Bezpieczeństwo Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-security.md): 22 pytań, Senior - [GraphQL z Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/graphql-rails.md): 20 pytań, Senior - [Wdrażanie i Produkcja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-deployment-production.md): 20 pytań, Senior - [Monitoring & Logging](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/monitoring-logging.md): 20 pytań, Senior - [Strategie aktualizacji Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-upgrade-strategies.md): 18 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-metaprogramming