Apresentação Ruby no Dojo da UFBA

34
A Linguagem de Programação A Linguagem de Programação Ruby Ruby Luciano Borges [email protected] @lusabo Alex Chastinet [email protected] @alexchastinet

description

 

Transcript of Apresentação Ruby no Dojo da UFBA

Page 1: Apresentação Ruby no Dojo da UFBA

A Linguagem de ProgramaçãoA Linguagem de ProgramaçãoRubyRuby

Luciano Borges

[email protected]

@lusabo

Alex Chastinet

[email protected]

@alexchastinet

Page 2: Apresentação Ruby no Dojo da UFBA

Matz1993

DHH2004

Page 3: Apresentação Ruby no Dojo da UFBA

Por que o Ruby?

Page 4: Apresentação Ruby no Dojo da UFBA

Dizem que é uma linguagem muito nova!

Python 1991 Ruby 1993/1995 PHP 1994 Java 1995

Page 5: Apresentação Ruby no Dojo da UFBA

Dizem que não tem bibliotecas!

108 bibliotecas padrões (falta confirmar!)

Ruby Application Archive http://raa.ruby-lang.org/ + 1800 projetos

RubyForge http://rubyforge.org/ + 9000 projetos

RubyGems http://rubygems.org/ + 20000 gems

Page 6: Apresentação Ruby no Dojo da UFBA

Dizem que não tem suporte!

Core 100% documentado http://www.ruby-doc.org/core/ http://apidock.com/

Vários tutoriais e livros disponíveis http://aprendaaprogramar.rubyonrails.pro.br/ http://why.nomedojogo.com/

Comunidade ativa http://softwarelivre.org/guru-ba http://guru-sp.com/ http://guruce.org/ http://softwarelivre.org/profile/grupo-de-usuarios-de-ruby-

on-rails-rs …

Page 7: Apresentação Ruby no Dojo da UFBA

Dizem que ninguém usa Ruby!

Simulações Nasa e Motorola

Telefonia Lucent

Administração de Sistemas Level3

Redes Open Domain Server

Aplicações Web Aqui vem a lista do Rails :)

Page 8: Apresentação Ruby no Dojo da UFBA

Sintaxe Limpa

Não precisa de ; Uso de () é opcional

Page 9: Apresentação Ruby no Dojo da UFBA

Sintaxe Objetiva

objeto.atributo = – método

empty? e capitalize!– métodos

Page 10: Apresentação Ruby no Dojo da UFBA

Declarações simples variavel_local @variavel_de_instancia @@variavel_de_classe $variavel_global

do … end ou {…} Tratamento de exceção

Similar ao Java

Interpolação de String

Sintaxe Flexível e Simples

Page 11: Apresentação Ruby no Dojo da UFBA

Tudo é objeto Números Ranges Hashes Classes …

100% OO

Page 12: Apresentação Ruby no Dojo da UFBA
Page 13: Apresentação Ruby no Dojo da UFBA

HerançaHerança

Page 14: Apresentação Ruby no Dojo da UFBA

Metraprogramação

Ruby permite adicionar outros métodos e operações aos objetos em tempo de execução.

Meta-programação é a capacidade de gerar/alterar código em tempo de execução.

Page 15: Apresentação Ruby no Dojo da UFBA
Page 16: Apresentação Ruby no Dojo da UFBA

Como se fosse uma string que sempre vai alocar o mesmo lugar na memória, não vai ficar mudando de lugar na memória.

Forma de guardar nomes performaticamente sem consumir memória desnecessariamente.

Use o sinal de : antes dos nomes dos símbolos.

Símbolos

Page 17: Apresentação Ruby no Dojo da UFBA

Ranges

Page 18: Apresentação Ruby no Dojo da UFBA

Ranges

Page 19: Apresentação Ruby no Dojo da UFBA

Forma mais fácil de extrair informações de um texto.

Instância da classe Regexp http://rubular.com

Expressões Regulares

Método Descrição

=~ Procura pela expressão regular no texto e retorna o índice em que ela foi encontrada.

!~ Informa se existe uma ocorrência da expressão regular no texto.

match Retorna um objeto do tipo MatchData, que contém ponteiros para os locais onde cada grupo da expressão regular foi encontrado.

Page 20: Apresentação Ruby no Dojo da UFBA

Expressões Regulares

Page 21: Apresentação Ruby no Dojo da UFBA

Coleções de valores. Pode conter objetos de diversos tipos.

Arrays

Page 22: Apresentação Ruby no Dojo da UFBA

Estrutura de dados que mantém um grupo de objetos conhecidos como keys e associa um valor para cada key.

Hashes

Page 23: Apresentação Ruby no Dojo da UFBA

Utilizados para iterar em coleções, personalizar o comportamento de algum métodos etc.

Existem duas sintaxes diferente para definir um bloco. Utilizando o símbolo { e } ou utilizando as

palavras-chave do e end. Podem receber parâmetros.

O símbolo | (pipe) é utilizado para demarcar o início e o fim da lista de parâmetros.

Blocos de Código

Page 24: Apresentação Ruby no Dojo da UFBA
Page 25: Apresentação Ruby no Dojo da UFBA

Operadores condicionais• if / elsif / else / end

a=0if a == 0print “zero”elsif a == 1print “um”elseprint “não sei”end

unless a == 0print “não é zero”elseprint “a é zero”end

• unless

Page 26: Apresentação Ruby no Dojo da UFBA

Operadores condicionais case / when / else / end

Page 27: Apresentação Ruby no Dojo da UFBA

Operadores de loopOperador Descrição

break Sai do loop atual

next Executa o próximo passo do loop

return Sai do loop e do método atual

redo Reinicia o loop atual

O operadores acima podem ser utilizados com qualquer dos loops.

Page 28: Apresentação Ruby no Dojo da UFBA

Operadores de loop

for i in 1..5puts iend

for a in %w{a b c d}puts aend

Page 29: Apresentação Ruby no Dojo da UFBA

Operadores de loop

i = %w{a b c d e f}while b = i.popputs bend

Page 30: Apresentação Ruby no Dojo da UFBA

Operadores de loop

i = 5until i = 0puts ii -= 1end

Page 31: Apresentação Ruby no Dojo da UFBA

Operadores de loop

i = 0beginputs ii += 1end while i < 0

Page 32: Apresentação Ruby no Dojo da UFBA

Operadores de loop

loop doputs “a”break if trueend

Page 33: Apresentação Ruby no Dojo da UFBA

Interpretadores Ruby

• YARV, evolução do MRI

• JRuby – implementação em Java

• IronRuby – Microsoft

• Rubinius – implementação em Ruby

• REE – Ruby Enterprise Edition / Phusion

Page 34: Apresentação Ruby no Dojo da UFBA

A Linguagem de Programação Ruby David Flanagan e Yukihiro Matsumoto

Desenvolvimento Fácil e Rápido de Aplicações Web: Ruby on Rails Rodrigo Urubatan

Google Slideshare

Referências