
Metaprogrammazione in Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1Cos'è la metaprogrammazione in Ruby?
Cos'è la metaprogrammazione in Ruby?
Risposta
La metaprogrammazione è la capacità di un programma di scrivere o modificare codice a runtime. In Ruby, ciò consente di definire dinamicamente metodi, classi e moduli, rendendo il codice più flessibile e conciso. Questa tecnica è ampiamente utilizzata in framework come Rails per creare DSL eleganti e ridurre la duplicazione del codice.
2Qual è lo scopo del metodo define_method in Ruby?
Qual è lo scopo del metodo define_method in Ruby?
Risposta
define_method consente di creare metodi dinamicamente a runtime. Riceve un nome di metodo (symbol o stringa) e un blocco che definisce il corpo del metodo. A differenza di def, define_method cattura le variabili locali dello scope circostante tramite una closure, il che è utile per generare metodi con comportamenti parametrizzati.
3Quando viene invocato il metodo method_missing da Ruby?
Quando viene invocato il metodo method_missing da Ruby?
Risposta
method_missing viene chiamato automaticamente quando un oggetto riceve una chiamata a un metodo che non esiste nella sua catena di ereditarietà. Riceve il nome del metodo chiamato e i suoi argomenti, consentendo la gestione dinamica di queste chiamate. È la base di molti pattern di metaprogramming come i ghost methods usati in ActiveRecord.
Qual è la differenza principale tra class_eval e instance_eval?
Quale hook viene chiamato quando un module viene incluso in una classe?
+17 domande da colloquio
Altri argomenti di colloquio Ruby on Rails
Fondamenti di Ruby
Programmazione orientata agli oggetti in Ruby
Fondamenti di Rails
Routing & Controllers
Fondamenti di ActiveRecord
Views e template ERB
Associazioni ActiveRecord
Query ActiveRecord avanzate
Form Rails
Autenticazione e autorizzazione
Asset Pipeline moderno e frontend
Modalità API di Rails
Test con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie di caching
Migrazioni avanzate
Rails Engines e app modulari
Ottimizzazione delle prestazioni
Design Pattern in Rails
Sicurezza in Rails
GraphQL con Rails
Deployment e Produzione
Monitoring & Logging
Strategie di upgrade di Rails
Padroneggia Ruby on Rails per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis