Browsing All Posts filed under »oo«

#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/ Advertisements

#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 […]

#1 Metaprogramação: Ruby Object Model

February 9, 2010

10

O primeiro passo para compreender os conceitos de metaprogramação em Ruby é conhecer como a linguagem forma os objetos, ou seja, entender o fluxo de onde estão realmente os métodos e variáveis das suas classes e objetos. Esse modelo de organização é chamado Ruby Object Model. De onde veio esse método ? O que realmente […]

Design Patterns: Composite em Ruby

October 27, 2009

2

A idéia de componentes sendo construídos a partir de “sub componentes” é algo bem comum em um software. Construir objetos a partir de “sub objetos” é o que sugere o padrão Composite, ou seja, objetos simples se integrando para resultar em um mais complexo e interessante para o sistema. Vamos pegar um exemplo: Contruir um […]

Design Patterns: Observer em Ruby

October 25, 2009

1

Integração é um dos maiores desafios na construção de um sistema, cada alteração causada por determinada parte do código pode causar mudanças no sistema com um todo. Em uma planilha, ao alterar uma célula, vários outros objetos podem mudar, como uma atualização de uma conta ou recriar um gráfico. Manter esse tipo de integração não […]