Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ruby (nem tão) Básico

1,287 views

Published on

Palestra de introdução a Ruby feita por Bruno no 3º encontro do Frevo on Rails.

  • Be the first to comment

  • Be the first to like this

Ruby (nem tão) Básico

  1. 1. <ul><li>Desenvolve desde 2000 </li></ul><ul><li>Trabalhou com delphi,java,C </li></ul><ul><ul><li>Trabalha agora com Ruby </li></ul></ul><ul><ul><li>Auto-Didata </li></ul></ul><ul><ul><li>Louco por POO </li></ul></ul><ul><ul><li>Adora TDD </li></ul></ul><ul><ul><li>Não sabe css,alguém me ensina? </li></ul></ul><ul><li>  </li></ul>Eu
  2. 2. Ruby The Fodam! Language
  3. 3. Porque Ruby?
  4. 4. The Ruby Way NomesDeClasse nomes_de_metodos e nomes_de_variaveis metodos_fazendo_pergunta? metodos_perigosos! @variaveis_de_instancia @@variaveis_de_classe $variaveis_globais ALGUMAS_CONSTANTES ou OutrasConstante
  5. 5. Tudo é Objeto 0.zero? # => true 1.zero? # => false 1.abs # => 1 -1.abs # => 1 1.methods # => lista de metodos do objeto 1 10.class # => Fixnum String.class nil.class
  6. 6. Tipagem Forte Result = 1 + “2” TypeError: String can't be coerced into Fixnum from (irb):1:in `+' from (irb):1 from :0
  7. 7. Poo Ruby Open Class Mensagens Metodos Como Objetos Fabrica de Objetos Duck Type Modulos
  8. 8. Open Class Podemos abrir as classes e adicionar metodos! Class Homem attr_access :nome end class Mulher def amar puts 'amar' end end class Mulher def fazer_menino(homem) puts 'fazendo menino com #{homem.nome}' end end
  9. 9. Mensagens Um objeto em ruby envia mensagens, não chama metodos class ExecutorDeClasses def executar(obj,metodo) obj.send(metodo) end end exec = ExecutorDeClasses.new exec.executar Mulher.new,:amar
  10. 10. Como é? Objeto Tabela de Metodos
  11. 11. Duck Type class ImpostoEua def calcular puts &quot;imposto baixo&quot; end end class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' end end
  12. 12. Duck Type def calcular_imposto(objeto) objeto.calcular end calcular_imposto ImpostoEua.new calcular_imposto ImpostoBrasil.new
  13. 13. Um pequeno servidor
  14. 14. Ruby,Ruby,Ruby!! Obrigado!!

×