Minicurso Ruby
-
Upload
saulo-arruda -
Category
Documents
-
view
1.551 -
download
4
description
Transcript of Minicurso Ruby
RubySaulo Arruda
28/01/2012
Olá!
• @sauloarruda
• Fundador e desenvolvedor da Jera
• 12 anos de código
• 2 filhas
• Ruby, Objective-C, Java, JavaScript
Ruby é...
Uma linguagem dinâmica, open source com foco na
simplicidade e na produtividade.
Tem uma sintaxe elegante de leitura natural e fácil escrita.
http://www.ruby-lang.org/pt/
Mas antes...
Coding Dojo
Regras
• Desenvolvimento guiado por testes
• “Passos de bebê”
• Pair Programming
• Todos devem entender
• Três fases: RED, GREEN, Refactor
http://pet.inf.ufsc.br/dojo/o-que-eh-dojo/
Ruby Interativo - irbirb(main):001:0>
irb(main):002:0> 3.0+2.0=> 5.0
irb(main):001:0> 3+2=> 5
http://www.ruby-lang.org/pt/documentacao/quickstart
irb(main):003:0> 5 * (12-8) + -15=> 5irb(main):004:0> 98 + (59872/(13*8)) * -52=> -29802
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=01
Do it yourself
• Quantas horas há em um ano?
• Quantos minutos há em uma década?
• Qual sua idade em segundos?
• Se minha idade é 1119 milhões de segundos, qual é minha idade em anos?
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=01
Letrasirb(main):001:0> "Ola Mundo"=> "Ola Mundo"
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=02
irb(main):002:0> puts 'Ola Mundo' Ola Mundo => nilirb(main):003:0> puts "Eu gosto de " + "torta de maçã.""Eu gosto de torta de maçã."irb(main):004:0> "2" * 3 "222"
Variáveisirb(main):001:0> nome = "Saulo"=> "Saulo"
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=03
irb(main):002:0> puts "Ola " + nome Ola Saulo => nilirb(main):003:0> eu = "eu"; vc = eu"eu"irb(main):004:0> eu = "Saulo"; puts vc"eu"=> nil
Tudo junto agora
irb(main):001:0> var1 = 2; var2 = "5"; puts var1.to_s * var2.to_i"22222"=> nil
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=04
irb(main):002:0> puts "Qual seu nome?"; nome = gets.chompQual seu nome?_=> "Saulo"
Sua vez
• Escreva um programa que peça o nome de uma pessoa, depois o sobrenome. Por fim, faça com que ele cumprimente a pessoa usando seu nome completo.
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=04
Sua vez (o retorno)
• Escreva um programa que pergunte pelo número favorito de uma pessoa. Some um ao número, e sugira o resultado como um número favorito muito melhor (tenha tato ao fazê-lo).
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=04
Métodosirb(main):001:0> p = "alas".reverse"sala"
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=05
irb(main):002:0> p + " tem " + p.length + " letras""sala tem 4 letras"irb(main):003:0> rand(3)(algo entre 0 e 3)irb(main):004:0> Math.sqrt(9)3.0
Controle de fluxo
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=06
if [condicao] comandos...elsif [condicao] comandos...else comandos...endwhile [condicao] comandos...end
Agora vai!
• "Um elefante incomoda muita gente..." Escreva um programa que imprima a letra para o clássico das viagens de carro, com um limite de 100 elefantes.
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=04
Dificultando...Escreva um programa Velha Surda. O que quer que você diga à velha (o que quer que você digite), ela tem que responder com QUE?! FALA MAIS ALTO!, a não ser que você grite (digite tudo em maiúsculas). Se você gritar, ela pode lhe ouvir (ou ao menos pensa que pode), e sempre responde NÃO, NÃO DESDE 1938! Para fazer seu programa ser realmente verossímil, faça a velha gritar um número diferente a cada vez; talvez qualquer ano aleatório entre 1930 e 1950. Você não pode parar de falar com a velha enquanto não gritar TCHAU.
http://aprendaaprogramar.rubyonrails.com.br/index.rb?Chapter=04
Dica: Não esqueça do chomp ! 'TCHAU' com um enter não é a mesma coisa que 'TCHAU' sem! Dica 2: "sim".upcase == "SIM". Dica 3: Tente pensar em que partes do programa as coisas acontecem repetidamente. Todas elas devem estar no seu loop while.
Exercícios
• Joquempô => Pedra, papel, tesoura
Retrospectiva
• O que aprendemos?
• O que gostamos?
• O que pode melhorar?
• Discussões ou comentários
15 minutos