30

Apresentação ruby + rails

Embed Size (px)

Citation preview

Page 1: Apresentação ruby + rails
Page 2: Apresentação ruby + rails

Linguagem de programaçãowww.ruby-lang.org/pt

Novembro de 2013

It is easy to program in Ruby,but Ruby is not a simple language

Page 3: Apresentação ruby + rails

Quais linguagens de programação vc conhece?Java, C (#,++,Objective), PHP, Delphi, ...

Page 4: Apresentação ruby + rails

Elas são parecidas?declaração de variáveis, sintaxe dos comandos, marcação de blocos, marcação de fim de linha

Page 5: Apresentação ruby + rails

Ruby é um pouco diferente!;-)

Page 6: Apresentação ruby + rails

#definindoclass MinhaClasse def fala puts "Ola mundo!" endend

#aplicandoobjeto = MinhaClasse.newobjeto.fala

Tradicional “Olá mundo” em Ruby!

Page 7: Apresentação ruby + rails

#definindoclass MinhaClasse def fala puts "Ola mundo!" endend

#aplicandoobjeto = MinhaClasse.newobjeto.fala

Tradicional “Olá mundo” em Ruby!

ou apenas isso!

Page 8: Apresentação ruby + rails

#definindoclass MinhaClasse def fala(frase, numero=1) puts numero.times {puts frase} endend

#aplicandoobjeto = MinhaClasse.newobjeto.fala("ola mundo")objeto.fala "ruby ", 3

Tradicional “Olá mundo” em Ruby!

Page 9: Apresentação ruby + rails

Sou

➔ Desenvolvedor

➔ Professor (:active => false)

➔ Acredito na Linguagem Ruby

➔ @MarceloBohn

Page 10: Apresentação ruby + rails

Ruby agora!

➔ Online: tryruby.org

➔ Nativo no OS X (Apple)

➔ Linux(free), Windows(Microsoft), …

➔ Ruboto no Android (Google)

➔ VM + Vagrant

Page 11: Apresentação ruby + rails

Sobre a linguagem

➔ Yukihiro Matsumoto - “Matz”➔ livre➔ primeira versão 1995➔ linguagem natural➔ standard library mais completa➔ menos código➔ tudo é objeto➔ marcação de final de linha

Page 12: Apresentação ruby + rails

Sobre a linguagem

➔ Yukihiro Matsumoto - “Matz”➔ livre➔ primeira versão 1995➔ linguagem natural➔ standard library mais completa➔ menos código➔ tudo é objeto \o/➔ marcação de final de linha :-)

Page 13: Apresentação ruby + rails

Linguagem interpretadaruby arquivo.rb

Console de testesirb

OBS: RVM ( Ruby Version Manager )

Page 14: Apresentação ruby + rails

Variáveis Objetos (duck typing)

v = 1v.classv.object_idv.methodsv = “um”v.classv = (1..5)

Page 15: Apresentação ruby + rails

Ruby style

v = “bem vindo”

v.upcase

v[0..2]

1.to_s

“5”.to_i

[1,2,3,4].reverse

3.times { print “Ruby! ” }

Page 16: Apresentação ruby + rails

Familiar X Novo

Condicionais

➔ if

➔ unless

➔ case

Laços

➔ for

➔ while

➔ each

➔ map

Page 17: Apresentação ruby + rails

Familiar X Novo

Arraya = []a << 1a << “texto”a << (1..5)a += [3,4]

s = “bem vindo”s[1..5]

Hashh = {}h[:a] = 1h[:b] = “a”

Page 18: Apresentação ruby + rails

Reescrever classe da linguagem(monkey patching)

class Fixnumdef dobra

self.*2 endend

1.dobra

Page 19: Apresentação ruby + rails

Reescrever classe da linguagem(monkey patching)

class TrueClass def to_s ‘Sim’ if self endend

v = truev.to_s

Page 20: Apresentação ruby + rails

Vários comandos em uma linha

(1..5).to_a.reverse.join('|').split('|').map {|e| e.to_i.*2}

Pega o intervalo de número de 1 até 5, converte em array, inverte a ordem, junta em uma string, separa novamente em array, multiplica todos elemente por dois

Page 21: Apresentação ruby + rails

+ Ruby

➔ Meta-programação

➔ Testes

➔ Rhodes

➔ Ruby on Rails

Page 22: Apresentação ruby + rails

Framework de desenvolvimento webwww.rubyonrails.com.br

Ruby on RailsHappy conding!

Page 23: Apresentação ruby + rails

Apresentação

➔ Framework MVC

➔ Agilidade no desenvolvimento de aplicações

Web

➔ Gratuito

➔ Código aberto

➔ DRY (Don't Repeat Yourself)

Page 24: Apresentação ruby + rails

Mundo sobre os trilhos

➔ Rails Console

➔ Migrations

➔ RubyGems

➔ ActiveRecord

➔ ActiveController

➔ ActiveView

Page 25: Apresentação ruby + rails

Preparando a subida no vagão

➔ Development, Testing and Production

➔ Rails Generate ( Scaffold, ... )

➔ Rails sever

➔ Rails console

Page 26: Apresentação ruby + rails

Iniciar a viagem

Quanto tempo vc demora para fazer um CRUD?

Page 27: Apresentação ruby + rails

CRUD(Create, Read, Update e Delete)

rails new first_app

rails g scaffold product name:string active:boolean price:decimal group:integer

rake db:migrate

rails s

Page 28: Apresentação ruby + rails

Perguntas?

Page 29: Apresentação ruby + rails

Obrigado!

Page 30: Apresentação ruby + rails

Obrigado!

@MarceloBohn