O recurso de method missing em Scala
4 minutos de leitura

Um dos argumentos de quem gosta de linguagens estaticamente tipadas é a ajuda fornecida pelo compilador no momento da escrita de código. Erros como invocação de métodos que não existem e assinatura errada são facilmente evitados. O mesmo não é encontrado nas linguagens mais dinâmicas, como Ruby, onde os testes de unidade podem trazer essa garantia. Entretanto, a dinamicidade dessas linguagens permite que escrevamos códigos que não são possiveis nas estaticamente tipadas, como Java.

Por exemplo, uma feature muito utilizada pelos códigos escritos em Ruby é o method missing. Talvez apareça até em excesso em alguns projetos, sendo o caso mais conhecido o próprio Rails, principalmente para escrever DSLs. Um desses usos é poder buscar por todas as propriedades das classes de modelo. Normalmente teríamos que criar métodos como buscaPorNome, buscaPorEmail ou combinações destes para atingir esse objetivo. Só que no framework ganhamos métodos prontos como Pessoa.findByNome ou . O ponto é que esses métodos não existem na classe, mas o Rails permite que a invocação seja realizada e, caso o método não exista, será invocado o . Dessa forma conseguimos ganhar esses comportamentos já prontos.
Autor(a)
alberto.souza
Inscreva-se em nossa Newsletter
Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.



