SlideShare uma empresa Scribd logo
A Linguagem de Programação Ruby Luciano Borges [email_address] @lusabo Alex Chastinet [email_address] @alexchastinet
Matz 1993 DHH 2004
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ç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=0 if a == 0 print “zero” elsif a == 1 print “um” else print “não sei” end unless a == 0 print “não é zero” else print “a é zero” end unless
Operadores condicionais case / when / else / end
Operadores de loop O operadores acima podem ser utilizados com qualquer dos loops. Operador 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
Operadores de loop for i in 1..5 puts i end for a in %w{a b c d} puts a end
Operadores de loop i = %w{a b c d e f} while b = i.pop puts b end
Operadores de loop i = 5 until i = 0 puts i i -= 1 end
Operadores de loop i = 0 begin puts i i += 1 end while i < 0
Operadores de loop loop do puts “a” break if true end
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

Mais conteúdo relacionado

PPSX
Introdução á linguagem Ruby com aplicativo em Rails
PDF
jQuery
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PDF
SEA Rails na pratica
PDF
Desenvolvimento web com Ruby on Rails (parte 1)
PDF
Rails na pratica
PDF
O que mudou no Ruby 1.9
PDF
Criando uma aplicação simples com ruby on rails
Introdução á linguagem Ruby com aplicativo em Rails
jQuery
Palestra Desenvolvimento Ágil para Web com ROR UVA
SEA Rails na pratica
Desenvolvimento web com Ruby on Rails (parte 1)
Rails na pratica
O que mudou no Ruby 1.9
Criando uma aplicação simples com ruby on rails

Mais procurados (20)

PPTX
Desvendando a linguagem JavaScript
PDF
Palestra Ruby
PDF
Esta começando a programar para a web? Então começe com Rails
PPTX
Curso de Ruby on Rails
ODP
Introducao ao Ruby On Rails
PDF
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
PDF
JavaScript: agora é sério
PPTX
APIs do Jeito Certo
PDF
Desenvolvimento ágil de software com Ruby on Rails
PDF
Ruby & Rails
PDF
Introdução a Linguagem de Programação Ruby
PDF
JavaScript for Beginners
PDF
Introdução à programação em Ruby
PDF
Paradigmas do Ruby
PDF
Ruby, Rails e Diversão (Campus Party Brasil 2009)
PDF
Conhecendo Ruby on Rails
PPT
Ruby, Simples e Expressivo
PPTX
JavaScript - Expressões Regulares
PPTX
Laravel 5: Entenda o ambiente e a estrutura MVC
Desvendando a linguagem JavaScript
Palestra Ruby
Esta começando a programar para a web? Então começe com Rails
Curso de Ruby on Rails
Introducao ao Ruby On Rails
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
JavaScript: agora é sério
APIs do Jeito Certo
Desenvolvimento ágil de software com Ruby on Rails
Ruby & Rails
Introdução a Linguagem de Programação Ruby
JavaScript for Beginners
Introdução à programação em Ruby
Paradigmas do Ruby
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Conhecendo Ruby on Rails
Ruby, Simples e Expressivo
JavaScript - Expressões Regulares
Laravel 5: Entenda o ambiente e a estrutura MVC
Anúncio

Destaque (20)

PDF
Estruturas de dados e técnicas de programação
PDF
Samir Mamude - Sistemas Comerciais Java EE
PDF
Applets - O Retorno: A Nova Geração do Java Plug-in
PPT
Desenvolvimento Ria com Java
PDF
Solve elec programa de análise de circuitos elétricos
PPTX
Desenho de formas utizando netbeans
PDF
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
PDF
Árvore B estruturas de dados e técnicas de programação
PDF
Java no Google App Engine - TDC2011
PDF
Tutorial sistema vendas_em_java_com_swing
PPT
Projeto calculadora em_java
ODP
NãNãNã Nã - Python Refresca até Pensamento
PDF
Prática de ensino de Linguagem de Programação II
PPTX
Caminho das Pedras para Certificação Java
PDF
Android
PDF
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
PPT
Jazoon 08
ZIP
Visão Geral de EJB 3.0
PDF
Applet Returns: The new generation of Java Plug-ins
PDF
SISTEMA WEB PARA ADMINISTRAÇÃO, GERENCIAMENTO E SUPORTE À DECISÃO EM PROJETOS...
Estruturas de dados e técnicas de programação
Samir Mamude - Sistemas Comerciais Java EE
Applets - O Retorno: A Nova Geração do Java Plug-in
Desenvolvimento Ria com Java
Solve elec programa de análise de circuitos elétricos
Desenho de formas utizando netbeans
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Árvore B estruturas de dados e técnicas de programação
Java no Google App Engine - TDC2011
Tutorial sistema vendas_em_java_com_swing
Projeto calculadora em_java
NãNãNã Nã - Python Refresca até Pensamento
Prática de ensino de Linguagem de Programação II
Caminho das Pedras para Certificação Java
Android
Coding-Dojo: Uma forma rápida, eficiente e divertida de ensinar e aprender
Jazoon 08
Visão Geral de EJB 3.0
Applet Returns: The new generation of Java Plug-ins
SISTEMA WEB PARA ADMINISTRAÇÃO, GERENCIAMENTO E SUPORTE À DECISÃO EM PROJETOS...
Anúncio

Semelhante a Apresentação Ruby no Dojo da UFBA (20)

PDF
Introdução a ruby
PDF
Apresentação ruby + rails
PDF
Minicurso de Rails - WTISC 2014
ODP
Curso Ruby
PPTX
Trabalho sobre Ruby(Linguagem de programação )
PPTX
Ruby (1)
PPTX
Curso ruby on rails
PDF
Apresentação ruby + rails 2014
PDF
Aprendendo ruby
PPTX
PDF
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
PDF
Introdução a Linguagem Ruby
KEY
Ruby para-programadores-php
KEY
Ruby para programadores PHP
PDF
Curso de introdução ao ruby
PDF
Logica de programação. introdução[AULA-1]
ODP
Minicurso Ruby on Rails Dextra
PDF
Introducao ao Ruby
PPT
A Linguagem Ruby
PDF
Ruby com Singleton class, Metaprogramação e muito mais
Introdução a ruby
Apresentação ruby + rails
Minicurso de Rails - WTISC 2014
Curso Ruby
Trabalho sobre Ruby(Linguagem de programação )
Ruby (1)
Curso ruby on rails
Apresentação ruby + rails 2014
Aprendendo ruby
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Introdução a Linguagem Ruby
Ruby para-programadores-php
Ruby para programadores PHP
Curso de introdução ao ruby
Logica de programação. introdução[AULA-1]
Minicurso Ruby on Rails Dextra
Introducao ao Ruby
A Linguagem Ruby
Ruby com Singleton class, Metaprogramação e muito mais

Mais de Luciano Borges (7)

ODP
HTML5 & suas APIs
PPT
ShareCar
ODP
IV Workshop Demoiselle
KEY
JQuery Alagoinhas Dev Day - UNEB
KEY
KEY
Titanium
PPT
Google Maps API V3
HTML5 & suas APIs
ShareCar
IV Workshop Demoiselle
JQuery Alagoinhas Dev Day - UNEB
Titanium
Google Maps API V3

Último (11)

PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Utilizando code blockes por andre backes
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Eng. Software - pontos essenciais para o início
Arquitetura de computadores - Memórias Secundárias
Viasol Energia Solar -Soluções para geração e economia de energia
Tipos de servidor em redes de computador.pptx
Utilizando code blockes por andre backes
Manejo integrado de pragas na cultura do algodão
Design - Introdução a Gestalt e teoria das formas
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

Apresentação Ruby no Dojo da UFBA

  • 1. A Linguagem de Programação Ruby Luciano Borges [email_address] @lusabo Alex Chastinet [email_address] @alexchastinet
  • 3. Por que o Ruby?
  • 4. Dizem que é uma linguagem muito nova! Python 1991 Ruby 1993/1995 PHP 1994 Java 1995
  • 5. 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
  • 6. 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 …
  • 7. 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 :)
  • 8. Sintaxe Limpa Não precisa de ; Uso de () é opcional
  • 9. Sintaxe Objetiva objeto.atributo = método empty? e capitalize! métodos
  • 10. 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
  • 11. Tudo é objeto Números Ranges Hashes Classes … 100% OO
  • 12.  
  • 14. 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.
  • 15.  
  • 16. 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
  • 19. 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.
  • 21. Coleções de valores. Pode conter objetos de diversos tipos. Arrays
  • 22. Estrutura de dados que mantém um grupo de objetos conhecidos como keys e associa um valor para cada key. Hashes
  • 23. 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
  • 24.  
  • 25. Operadores condicionais if / elsif / else / end a=0 if a == 0 print “zero” elsif a == 1 print “um” else print “não sei” end unless a == 0 print “não é zero” else print “a é zero” end unless
  • 26. Operadores condicionais case / when / else / end
  • 27. Operadores de loop O operadores acima podem ser utilizados com qualquer dos loops. Operador 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
  • 28. Operadores de loop for i in 1..5 puts i end for a in %w{a b c d} puts a end
  • 29. Operadores de loop i = %w{a b c d e f} while b = i.pop puts b end
  • 30. Operadores de loop i = 5 until i = 0 puts i i -= 1 end
  • 31. Operadores de loop i = 0 begin puts i i += 1 end while i < 0
  • 32. Operadores de loop loop do puts “a” break if true end
  • 33. Interpretadores Ruby YARV, evolução do MRI JRuby – implementação em Java IronRuby – Microsoft Rubinius – implementação em Ruby REE – Ruby Enterprise Edition / Phusion
  • 34. 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

Notas do Editor

  • #4: Ruby é uma “linguagem de scripts (interpretada) para uma programação orientada a objetos rápida e fácil”; O que significa isto?
  • #20: No IRB re = /[a-z]+/ &amp;quot;12345&amp;quot; =~/[a-z]/ &amp;quot;12a345&amp;quot; =~/[a-z]/
  • #22: arr = [] arr = Array.new arr = %w{a b c}
  • #23: h1 = {1 =&gt; “Luciano”, “b” =&gt; 123} h[1] / h[“b”] h2 = Hash.new
  • #24: arr = [1,2,3,4] arr.each { |val| print “#{val}\\n” } ------------ arr.each_with_index do |val, idx| print “Posição #{idx} valor #{val}\\n” End ------------ valor = 1 arr.each do |val| valor += val end valor -----------
  • #26: b=5 if a!=1 b=6 unless b b=7 unless b O unless pode ser utilizado para definir o valor de uma variável apenas se ela ainda não tiver valor.
  • #29: Utilize apenas quando for realmente necessário, pois o modo padrão do Ruby de iterar sobre coleções é empregando os métodos apropriados como o each.
  • #30: %w{a b c d e f} – forma de declarar um array contendo apenas string.
  • #31: É o contrário do while: ele repete o bloco de código até que a condição seja verdadeira.
  • #32: Utilizado em conjunto com while ou until quando se deseja que o bloco seja executado pelo menos uma vez. Assim, a condição fica no final do bloco e não no início.
  • #33: Será executado até que encontre um break ou return do bloco.