54
Ruby, simples e expressivo! @rr_martins Rodrigo Martins [email protected] om rrmartins.github.co

Ruby, Simples e Expressivo

Embed Size (px)

DESCRIPTION

Palestra de Ruby, Simples e Expressivo. Aplicada no FLISOL, em Vitória-ES.

Citation preview

Page 1: Ruby, Simples e Expressivo

Ruby, simples e expressivo!

@rr_martinsRodrigo [email protected]

Page 2: Ruby, Simples e Expressivo

Quem sou?

Rodrigo Martins

@rr_martins

[email protected]

www.rrmartins.com → rrmartins.github.com

Já Trabalhei com:

→ Zim

→ PHP

→ Clipper

→ Java

O que faço hoje:

→ Ruby

→ Rails

→ Python

→ PHP (pouco)

→ Estudando sempre novas tecnologias... :D

Page 3: Ruby, Simples e Expressivo

https://github.com/rrmartins/

Page 4: Ruby, Simples e Expressivo
Page 5: Ruby, Simples e Expressivo

Contribuições Comunidades

Rails-br

Android Brasil – Projetos

Android Developers Brasil

Comunidade Tux-ES :D

Ruby on Rails: Talk

Page 6: Ruby, Simples e Expressivo

Ruby!?

Que jóia Linda... Eu quero!!! :D

Page 7: Ruby, Simples e Expressivo

O que é Ruby?

Page 8: Ruby, Simples e Expressivo

O que é Ruby?

Interpretada multiparadigmas;

Page 9: Ruby, Simples e Expressivo

O que é Ruby?

Interpretada multiparadigmas; Tipagem dinâmica e forte;

Page 10: Ruby, Simples e Expressivo

O que é Ruby?

Interpretada multiparadigmas; Tipagem dinâmica e forte; Gerenciamento de memória automático;

Page 11: Ruby, Simples e Expressivo

O que é Ruby?

Interpretada multiparadigmas; Tipagem dinâmica e forte; Gerenciamento de memória automático; Suporta programação funcional;

Page 12: Ruby, Simples e Expressivo

O que é Ruby?

Interpretada multiparadigmas; Tipagem dinâmica e forte; Gerenciamento de memória automático; Suporta programação funcional; Orientada a objetos, OO;

Page 13: Ruby, Simples e Expressivo

Ruby disponivel para:

Microsoft Windows

Page 14: Ruby, Simples e Expressivo

Ruby disponivel para:

Microsoft Windows

Page 15: Ruby, Simples e Expressivo

Ruby disponivel para:

Linux

Page 16: Ruby, Simples e Expressivo

Ruby disponivel para:

Mac OS X

Page 17: Ruby, Simples e Expressivo

Ruby disponivel para:

Ruby + Java = JRuby

Page 18: Ruby, Simples e Expressivo

Ideais do Matz

→ “...tentar tornar o Ruby natural, não é simples...”

http://www.ruby-lang.org/en/about/

Page 19: Ruby, Simples e Expressivo

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/

Page 20: Ruby, Simples e Expressivo

Conversando com o Codigo

Page 21: Ruby, Simples e Expressivo
Page 22: Ruby, Simples e Expressivo

Java

Page 23: Ruby, Simples e Expressivo

Ruby

Page 24: Ruby, Simples e Expressivo

Ruby

Page 25: Ruby, Simples e Expressivo

Ruby

Page 26: Ruby, Simples e Expressivo

Ruby

Page 27: Ruby, Simples e Expressivo

Ruby

Page 28: Ruby, Simples e Expressivo

Ruby

Page 29: Ruby, Simples e Expressivo

Ruby

Page 30: Ruby, Simples e Expressivo

Ruby

Page 31: Ruby, Simples e Expressivo

Model Rails

Page 32: Ruby, Simples e Expressivo

DSL - Metaprogramação

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

Page 33: Ruby, Simples e Expressivo

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

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

DSL - Metaprogramação

Page 34: Ruby, Simples e Expressivo

→ 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

Page 35: Ruby, Simples e Expressivo

→ Rails aproveita metaprogramação pesadamente.

DSL - Metaprogramação

Page 36: Ruby, Simples e Expressivo

→ Rails aproveita metaprogramação pesadamente.

→ Para efeito ótimo!

DSL - Metaprogramação

Page 37: Ruby, Simples e Expressivo

→ Rails aproveita metaprogramação pesadamente.

→ Para efeito ótimo!

→ Ruby é uma natural para metaprogramação.

DSL - Metaprogramação

Page 38: Ruby, Simples e Expressivo

→ XML

Page 39: Ruby, Simples e Expressivo

→ XML

→ JSON

Page 40: Ruby, Simples e Expressivo

→ XML

→ JSON

→ Rspec (Gem)

Page 41: Ruby, Simples e Expressivo

→ XML

→ JSON

→ Rspec (Gem)

Page 42: Ruby, Simples e Expressivo

→ XML

→ JSON

→ Rspec (Gem)

→ Cocumber (Gem)

Page 43: Ruby, Simples e Expressivo

http://www.slideshare.net/fnando/testando-rails-apps-com-rspec

Page 44: Ruby, Simples e Expressivo

Desenvolvendo uma linguagem com RubyO Poder das DSL

com Metaprogramação!

Page 45: Ruby, Simples e Expressivo

Começando com a Class

Page 46: Ruby, Simples e Expressivo

Inicializando a Classe

http://apidock.com/ruby/Object/instance_eval

Page 47: Ruby, Simples e Expressivo

Criando os metodos da Linguagem

Page 48: Ruby, Simples e Expressivo

Imprimindo o resultado final

Page 49: Ruby, Simples e Expressivo

Executando

Page 50: Ruby, Simples e Expressivo

Saída

Page 51: Ruby, Simples e Expressivo

Ruby, Simples e Expressivo!

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

Page 52: Ruby, Simples e Expressivo
Page 53: Ruby, Simples e Expressivo
Page 54: Ruby, Simples e Expressivo

Muito Obrigado!

Rodrigo Martins

@rr_martins

[email protected]

www.rrmartins.com → rrmartins.github.com