
Metaprogramação em Ruby
define_method, method_missing, class_eval, instance_eval, hooks, DSLs
1O que é metaprogramação em Ruby?
O que é metaprogramação em Ruby?
Resposta
A metaprogramação é a capacidade de um programa de escrever ou modificar código em tempo de execução. Em Ruby, isso permite definir métodos, classes e módulos dinamicamente, tornando o código mais flexível e conciso. Essa técnica é amplamente usada em frameworks como Rails para criar DSLs elegantes e reduzir a duplicação de código.
2Qual é o propósito do método define_method no Ruby?
Qual é o propósito do método define_method no Ruby?
Resposta
define_method permite criar métodos dinamicamente em tempo de execução. Ele recebe um nome de método (símbolo ou string) e um bloco que define o corpo do método. Diferentemente de def, define_method captura as variáveis locais do escopo envolvente por meio de uma closure, o que é útil para gerar métodos com comportamentos parametrizados.
3Quando o método method_missing é invocado pelo Ruby?
Quando o método method_missing é invocado pelo Ruby?
Resposta
method_missing é chamado automaticamente quando um objeto recebe uma chamada de método que não existe em sua cadeia de herança. Ele recebe o nome do método chamado e seus argumentos, permitindo o tratamento dinâmico dessas chamadas. Essa é a base de muitos padrões de metaprogramação, como os ghost methods usados no ActiveRecord.
Qual é a principal diferença entre class_eval e instance_eval?
Qual hook é chamado quando um module é incluído em uma classe?
+17 perguntas de entrevista
Outros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programação orientada a objetos em Ruby
Fundamentos do Rails
Routing & Controllers
Fundamentos do ActiveRecord
Views e templates ERB
Associações do ActiveRecord
Consultas avançadas do ActiveRecord
Formulários Rails
Autenticação e Autorização
Asset Pipeline moderno e frontend
Modo API do Rails
Testes com RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estratégias de caching
Migrações avançadas
Rails Engines e apps modulares
Otimização de desempenho
Padrões de projeto no Rails
Segurança no Rails
GraphQL com Rails
Implantação e Produção
Monitoring & Logging
Estratégias de upgrade do Rails
Domine Ruby on Rails para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis