ruby (nem tão) básico

14
Desenvolve desde 2000 Trabalhou com delphi,java,C Trabalha agora com Ruby Auto-Didata Louco por POO Adora TDD Não sabe css,alguém me ensina? Eu Eu

Upload: frevo-on-rails

Post on 24-Dec-2014

1.063 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Ruby (nem tão) Básico

Desenvolve desde 2000Trabalhou com delphi,java,CTrabalha agora com RubyAuto-DidataLouco por POOAdora TDDNão sabe css,alguém me ensina?

 

EuEu

Page 2: Ruby (nem tão) Básico

Ruby Ruby The Fodam! LanguageThe Fodam! Language

Page 3: Ruby (nem tão) Básico

Porque Ruby?Porque Ruby?

Page 4: Ruby (nem tão) Básico

The Ruby WayThe Ruby Way

NomesDeClassenomes_de_metodos e nomes_de_variaveismetodos_fazendo_pergunta?metodos_perigosos!@variaveis_de_instancia@@variaveis_de_classe$variaveis_globaisALGUMAS_CONSTANTES ou OutrasConstante

Page 5: Ruby (nem tão) Básico

Tudo é ObjetoTudo é Objeto

0.zero? # => true1.zero? # => false1.abs # => 1-1.abs # => 11.methods # => lista de metodos do objeto 110.class # => FixnumString.classnil.class

Page 6: Ruby (nem tão) Básico

Tipagem ForteTipagem Forte

Result = 1 + “2”

TypeError: String can't be coerced into Fixnumfrom (irb):1:in `+'from (irb):1from :0

Page 7: Ruby (nem tão) Básico

Poo RubyPoo Ruby

Open Class

Mensagens

Metodos Como Objetos

Fabrica de Objetos

Duck Type

Modulos

Page 8: Ruby (nem tão) Básico

Open ClassOpen Class

Podemos abrir as classes e adicionar metodos!

Class Homem attr_access :nomeendclass Mulher def amar puts 'amar' endend

class Mulher def fazer_menino(homem) puts 'fazendo menino com #{homem.nome}' endend

Page 9: Ruby (nem tão) Básico

MensagensMensagens

Um objeto em ruby envia mensagens, não chama metodos

class ExecutorDeClasses

def executar(obj,metodo) obj.send(metodo) endend

exec = ExecutorDeClasses.new

exec.executar Mulher.new,:amar

Page 10: Ruby (nem tão) Básico

Como é?Como é?

Objeto

Tabela de Metodos

Page 11: Ruby (nem tão) Básico

Duck TypeDuck Type

class ImpostoEua def calcular puts "imposto baixo" endend

class ImpostoBrasil def calcular puts 'imposto alto pra caralho!!' endend

Page 12: Ruby (nem tão) Básico

Duck TypeDuck Type

def calcular_imposto(objeto) objeto.calcularend

calcular_imposto ImpostoEua.newcalcular_imposto ImpostoBrasil.new

Page 13: Ruby (nem tão) Básico

Um pequeno servidorUm pequeno servidor

Page 14: Ruby (nem tão) Básico

Ruby,Ruby,Ruby!!Ruby,Ruby,Ruby!!

Obrigado!!