43
Sobre: Apresentação que fala sobre a linguagem de programação Ruby e o framework de desenvolvimento web Rails. Publico alvo: Gente que gosta de informática e que estudou uma ou mais linguagens de programação. Objetivo: Quebrar paradigmas de padrões de uso de linguagens de programação, mostrando como o Ruby resolve algumas questões básicas. Apresentar o Rails e como ele pode agilizar o desenvolvimento de projetos web. Setembro de 2014

Apresentação ruby + rails 2014

Embed Size (px)

DESCRIPTION

Apresentação da linguagem de programação Ruby e algumas particularidades em relação a outras linguagens e introdução ao framework Rails

Citation preview

Page 1: Apresentação ruby + rails 2014

Sobre: Apresentação que fala sobre a linguagem de programação Ruby e o framework de desenvolvimento web Rails.

Publico alvo:Gente que gosta de informática e que estudou uma ou mais linguagens de programação.

Objetivo:Quebrar paradigmas de padrões de uso de linguagens de programação, mostrando como o Ruby resolve algumas questões básicas. Apresentar o Rails e como ele pode agilizar o desenvolvimento de projetos web.

Setembro de 2014

Page 2: Apresentação ruby + rails 2014
Page 3: Apresentação ruby + rails 2014

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

Setembro de 2014

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

Page 4: Apresentação ruby + rails 2014

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

Page 5: Apresentação ruby + rails 2014

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

Page 6: Apresentação ruby + rails 2014

Ruby é um pouco diferente!

Page 7: Apresentação ruby + rails 2014

Ruby é um pouco diferente!;-)

Page 8: Apresentação ruby + rails 2014

Rodar

Linguagem interpretada

ruby arquivo.rb

Console de testes

irb

Page 9: Apresentação ruby + rails 2014

Rodar

Linguagem interpretada

ruby arquivo.rb

Console de testes

irb

Ok! Nenhuma novidade!(Aparantemente)

O que é isso?

Page 10: Apresentação ruby + rails 2014

“Olá mundo!”

Page 11: Apresentação ruby + rails 2014

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

#aplicandoobjeto = MinhaClasse.newobjeto.fala

Tradicional “Olá mundo!” em Ruby!

Page 12: Apresentação ruby + rails 2014

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

#aplicandoobjeto = MinhaClasse.newobjeto.falaobjeto.fala

Tradicional “Olá mundo!” em Ruby!

ou apenas isso!

Page 13: Apresentação ruby + rails 2014

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

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

“Olá mundo” em Ruby com mais recursos!

Page 14: Apresentação ruby + rails 2014

O que vocês acharam?:-D

Page 15: Apresentação ruby + rails 2014

Ok! Vamos começar!

Page 16: Apresentação ruby + rails 2014

Eu sou

➔ Desenvolvedor

➔ Acredito na Linguagem Ruby

➔ @MarceloBohn

Page 17: Apresentação ruby + rails 2014

Quer usar Ruby?

➔ Online: tryruby.org

➔ OS X (Apple - nativo nas versões recentes)

➔ Linux

➔ Windows (Microsoft)

➔ Ruboto no Android (Google)

➔ VM + Vagrant

Page 18: Apresentação ruby + rails 2014

Instalação

Nativa do SORVM (Ruby Version Manager)

Rbenv (Ruby Environment)

Page 19: Apresentação ruby + rails 2014

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 20: Apresentação ruby + rails 2014

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 21: Apresentação ruby + rails 2014

Vamos ao código!

Page 22: Apresentação ruby + rails 2014

Variáveis Objetos (duck typing)

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

Page 23: Apresentação ruby + rails 2014

Ruby style

v = “bem vindo”

v.upcase

v.upcase!

v[0..2]

“sim” if v[0] == “B”

v[0] == “b” ? “sim” : “não”

Page 24: Apresentação ruby + rails 2014

Ruby style

1.to_s

“5”.to_i

[1,2,3,4].reverse

3.times { p “Ruby! ” }

Page 25: Apresentação ruby + rails 2014

Familiar X Novo

Condicionais

➔ if

➔ unless

➔ case

Page 26: Apresentação ruby + rails 2014

Familiar X Novo

Laços

➔ for

➔ while

➔ each

➔ map

Page 27: Apresentação ruby + rails 2014

Familiar X Novo

Arraya = []a = Array.new

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

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

Page 28: Apresentação ruby + rails 2014

Familiar X Novo

Hash (chave + valor)h = {}h = Hash.new

h[:a] = 1h[“b”] = “a”h[3] = (1..5)

Page 29: Apresentação ruby + rails 2014

Familiar X Novo

Hash (chave + valor)h = {}h = Hash.new

h[:a] = 1h[“b”] = “a”h[3] = (1..5)

Symbol

Page 30: Apresentação ruby + rails 2014

Reescrever classe da linguagem(monkey patching)

class Fixnumdef dobra

self.*2 endend

1.dobra

Page 31: Apresentação ruby + rails 2014

Reescrever classe da linguagem(monkey patching)

class TrueClass def to_s ‘Sim’ if self endend

v = truev.to_s

Page 32: Apresentação ruby + rails 2014

Vários comandos em uma linha

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

● Pega o intervalo de números de 1 até 5● Converte em array● Inverte a ordem● Concatena tudo em uma string● Separa e converte novamente em array● Multiplica todos elementos por dois

Page 33: Apresentação ruby + rails 2014

+ Ruby

➔ Meta-programação

➔ Testes

➔ Rhodes

➔ Ruby on Rails

Page 34: Apresentação ruby + rails 2014

+ Ruby

➔ Meta-programação

➔ Testes

➔ Rhodes

➔ Ruby on Rails

Page 35: Apresentação ruby + rails 2014

Framework MVC de desenvolvimento webwww.rubyonrails.com.br

Ruby on RailsHappy conding!

Page 36: Apresentação ruby + rails 2014

O que é?

➔ Framework MVC

➔ Agilidade no desenvolvimento de

aplicações Web (startups)

➔ Gratuito

➔ Código aberto

➔ DRY (Don't Repeat Yourself)

Page 37: Apresentação ruby + rails 2014

Mundo sobre os trilhos

➔ Migrations

➔ RubyGems

➔ ActiveRecord (gem)

➔ ActiveController (gem)

➔ ActiveView (gem)

Page 38: Apresentação ruby + rails 2014

Preparando a subida no vagão

➔ Development, Testing and Production

➔ Rails Generate ( Scaffold, Migration, Model,

Controller, ... )

➔ Rails Sever

➔ Rails Console

Page 39: Apresentação ruby + rails 2014

Iniciar a viagem

Quanto tempo vc demora para fazer um CRUD?

Page 40: Apresentação ruby + rails 2014

APP + 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 41: Apresentação ruby + rails 2014

Perguntas?

Page 42: Apresentação ruby + rails 2014

Obrigado!

Page 43: Apresentação ruby + rails 2014

Obrigado!

@MarceloBohn