Browsing All Posts filed under »metaprogramação«

Aula aberta na Caelum | Slides

April 16, 2010

0

A aula aberta na Caelum foi bem legal, presença de cerca de 70 pessoas. Tivemos a palestra do Akita e uma minha sobre ActiveRecord. Um dos próximos eventos da comunidade Ruby/Rails será o Ruby e Rails no mundo real.

#7 Metaprogramação: Eigenclasses

March 10, 2010

1

Este post sobre metaprogramação e eigenclasses foi publicado no blog da Caelum. link => http://blog.caelum.com.br/2010/03/10/metaprogramacao-eigenclass-em-ruby/

#6 Metaprogramação: Definindo Classes

February 20, 2010

1

Algumas pessoas tem comentado que os conceitos de metaprogramação tem ajudado na quebra de paradigma de Ruby e suas linguagens anteriores, como Java ou C#. De fato as diferenças são grandes e aqui vai mais uma delas. Em linguagens como Java e C#, ao definir uma classe você está dizendo ao compilador: “Ei compilador, quando […]

#5 Metaprogramação: Procs, lambdas e &

February 18, 2010

5

Existem ainda diversas formas de se trabalhar com blocos em Ruby, métodos como instance_eval e instance_exec(este último apenas no Ruby 1.9) são formas de utilizá-los. Com o passar do tempo objetos criados apenas para testar o comportamento de blocos foram criados, e a esses é dado o nome de Clean Rooms. Diversos frameworks se utilizam […]

#4 Metaprogramação: Blocos

February 12, 2010

1

Obs: Esse post assume que você conhece o básico sobre blocos em Ruby. Um código precisa de um ambiente pra ser executado, que pode ser uma variável local, variável de instância, self… O nome dado para essas entidades normalmente é binding. A característica principal dos blocos é que eles contém tanto o código a ser […]

#3 Metaprogramação: method_missing()

February 10, 2010

2

No último post vimos como aplicar metaprogramação para melhorar a classe Computador, utilizando Dynamic Methods e Dynamic Dispatch. Porém essa não é a única forma. Você já conhece o modelo de objetos Ruby e a técnica “one step right, then up“, que consiste em primeiro procurar um método na classe do objeto receiver e depois […]

#2 Metaprogramação: Definindo métodos

February 10, 2010

8

Ruby não tem um compilador para analisar as chamadas aos métodos. Compiladores podem verificar por erros antes do código rodar, porém essa proteção tem um custo alto, onde linguagens estáticas forçam o programador a escrever códigos repetitivos, como os os getters e setters do Java. Vamos analizar um problema e refatorá-lo usando um pouco de […]