Ontem fui assistir o Show Day Rails palestrado pelo grande Fábio Akita (www.akitaonrails.com) que como muitos sabem é um dos maiores nomes de Ruby on Rails no Brasil e no mundo.
O curso em si foi muito interessante, ele demonstrou alguns conceitos de Ruby, sendo que um deles me chamou bastante a atenção foi o fato da linguagem suportar metaprogramação uma vez que é dinâmica.

Bom para quem não sabe metaprogramação basicamente significa “código que gera código”, o primeiro impacto causado a maioria dos programadores que não conheciam este conceito é de se sentir muito impressionado, porém depois vem a pergunta “para que eu vou precisar disso?”

Veja este exemplo:


  #método que recebe um bloco como parâmetro e o executa
  def custom(&block)
    block.call
  end

  #chamando o método
  custom {puts "olá"}

Em tempo de execução na verdade o método incorpora o bloco de código para dentro ficando assim:

  def custom
    puts "olá"
  end

Qualquer bloco de código passado por parâmetro será incorporado a este método.

Uma maneira mais simples e limpa:

  def custom
    yield
  end

  custom {puts "Testing the yield power"}

A metaprogramação tem utilidade sim, utilidade que pode não ser enxergada a primeira momento por alguns programadores pois trata-se de algo um pouco avançado, no entanto ela pode ser usada por exemplo para geração de testes em Rails de uma forma mais inteligente chamada de Rspec que implementa o conceito BDD (Behaviour Driven Development).

Até lá.

Após grande sucesso do meu TCC denominado “Ruby on Rails: Desenvolvimento Ágil de Aplicações Web” (em breve será disponibilizado para a comunidade Rails), continuo com minha empolgação que este framework me traz a cada dia.

Até hoje tive mais contato com as linguagens Java e Delphi, desenvolvendo maior parte do tempo aplicações desktop e processamento de dados, no entanto tenho conhecimento mediano em programação web e estou tendo uma ótima resposta ao desenvolver aplicações web em Ruby on Rails.

Ao ver a felicidade dos programadores Ruby on Rails ao postar suas experiências, me sinto entusiasmado para que o mais cedo possível eu possa contribuir com o crescimento e evolução do framework criado por David Heinemeier Hansson bem como a linguagem Ruby projetada por Yukihiro.

rails summerhil yonge tall 01 blog - rails summerhil yonge tall 01 blog

Irei compartilhar através deste blog minhas experiências adquiridas em Ruby on Rails, objetivando eliminar facilmente possíveis obstáculos que passei e que outros programadores possam se deparar
;)