Apresentação Ruby no Dojo da UFBA

Post on 12-Nov-2014

796 views 3 download

Tags:

description

 

Transcript of Apresentação Ruby no Dojo da UFBA

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

Luciano Borges

lucianosantosborges@gmail.com

@lusabo

Alex Chastinet

alexchastinet@gmail.com

@alexchastinet

Matz1993

DHH2004

Por que o Ruby?

Dizem que é uma linguagem muito nova!

Python 1991 Ruby 1993/1995 PHP 1994 Java 1995

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

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 …

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 :)

Sintaxe Limpa

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

Sintaxe Objetiva

objeto.atributo = – método

empty? e capitalize!– métodos

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

Tudo é objeto Números Ranges Hashes Classes …

100% OO

HerançaHerança

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.

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

Ranges

Ranges

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.

Expressões Regulares

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

Arrays

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

Hashes

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

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

Operadores condicionais case / when / else / end

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.

Operadores de loop

for i in 1..5puts iend

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

Operadores de loop

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

Operadores de loop

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

Operadores de loop

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

Operadores de loop

loop doputs “a”break if trueend

Interpretadores Ruby

• YARV, evolução do MRI

• JRuby – implementação em Java

• IronRuby – Microsoft

• Rubinius – implementação em Ruby

• REE – Ruby Enterprise Edition / Phusion

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