Ruby, simples e expressivo!




@rr_martins
Rodrigo Martins
rodrigo@rrmartins.com
rrmartins.github.com
Quem sou?

    Já Trabalhei com:   
                            O que faço hoje:
→ Zim                   → Ruby
→ PHP                   → Rails
→ Clipper               → Python
→ Java                  → PHP (pouco)
                        → Estudando sempre novas tecnologias... :D

Rodrigo Martins
@rr_martins
rodrigo@rrmartins.com
www.rrmartins.com → rrmartins.github.com
https://github.com/rrmartins/
Contribuições Comunidades
Rails-br
Android Brasil – Projetos
Android Developers Brasil
Comunidade Tux-ES :D
Ruby on Rails: Talk
Ruby!?

Que jóia Linda...
 Eu quero!!! :D
O que é Ruby?
O que é Ruby?

    Interpretada multiparadigmas;
O que é Ruby?

    Interpretada multiparadigmas;

    Tipagem dinâmica e forte;
O que é Ruby?

    Interpretada multiparadigmas;

    Tipagem dinâmica e forte;

    Gerenciamento de memória automático;
O que é Ruby?

    Interpretada multiparadigmas;

    Tipagem dinâmica e forte;

    Gerenciamento de memória automático;

    Suporta programação funcional;
O que é Ruby?

    Interpretada multiparadigmas;

    Tipagem dinâmica e forte;

    Gerenciamento de memória automático;

    Suporta programação funcional;

    Orientada a objetos, OO;
Ruby disponivel para:

    Microsoft Windows
Ruby disponivel para:

    Microsoft Windows
Ruby disponivel para:

    Linux
Ruby disponivel para:

    Mac OS X
Ruby disponivel para:

    Ruby + Java = JRuby
Ideais do Matz
→ “...tentar tornar o Ruby natural, não é
 simples...”




             http://www.ruby-lang.org/en/about/
Ideais do Matz
→ “...tentar tornar o Ruby natural, não é
 simples...”
→ “Ruby é simples na aparência, mas é muito
 complexo no interior, assim como nosso corpo
 humano.”




             http://www.ruby-lang.org/en/about/
Conversando com o Codigo
Java
Ruby
Ruby
Ruby
Ruby
Ruby
Ruby
Ruby
Ruby
Model Rails
DSL - Metaprogramação


→ Difinição: “Programe sua Programação!” ||
“Codigo Fazendo Codigo!”
DSL - Metaprogramação


→ Difinição: “Programe sua Programação!” ||
“Codigo Fazendo Codigo!”

→ Faça-lhe uma linguagem específica de
domínio.
DSL - Metaprogramação


→ Difinição: “Programe sua Programação!” ||
“Codigo Fazendo Codigo!”

→ Faça-lhe uma linguagem específica de
domínio.

→ Programa em uma linguagem desenhada
para o problema que você está resolvendo.
DSL - Metaprogramação


→ Rails aproveita metaprogramação
pesadamente.
DSL - Metaprogramação


→ Rails aproveita metaprogramação
pesadamente.

→ Para efeito ótimo!
DSL - Metaprogramação


→ Rails aproveita metaprogramação
pesadamente.

→ Para efeito ótimo!

→ Ruby é uma natural para metaprogramação.
e

→ XML
JS N
           O

→ XML

→ JSON
Rspec (G )
                 em

→ XML

→ JSON

→ Rspec (Gem)
Rspec (G )
                 em

→ XML

→ JSON

→ Rspec (Gem)
C ber (G )
          ocum   em

→ XML

→ JSON

→ Rspec (Gem)

→ Cocumber (Gem)
http://www.slideshare.net/fnando/testando-rails-apps-com-rspec
Desenvolvendo uma linguagem com Ruby
          O Poder das DSL
        com Metaprogramação!
Começando com a Class
Inicializando a Classe




                         http://apidock.com/ruby/Object/instance_eval
Criando os metodos da Linguagem
Imprimindo o resultado final
Executando
Saída
Ruby, Simples e Expressivo!




http://blog.caelum.com.br/codigo-conciso-claro-e-breve/
Muito Obrigado!




Rodrigo Martins
@rr_martins
rodrigo@rrmartins.com
www.rrmartins.com → rrmartins.github.com

Ruby, Simples e Expressivo