View
190
Download
6
Category
Preview:
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
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
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
Quais linguagens de programação você conhece?Java, C (#,++,Objective), PHP, ...
Elas são parecidas?● declaração de variáveis● sintaxe dos comandos● marcação de blocos● marcação de fim de linha
Ruby é um pouco diferente!
Ruby é um pouco diferente!;-)
Rodar
Linguagem interpretada
ruby arquivo.rb
Console de testes
irb
Rodar
Linguagem interpretada
ruby arquivo.rb
Console de testes
irb
Ok! Nenhuma novidade!(Aparantemente)
O que é isso?
“Olá mundo!”
#definindoclass MinhaClasse def fala puts "Ola mundo!" endend
#aplicandoobjeto = MinhaClasse.newobjeto.fala
Tradicional “Olá mundo!” em Ruby!
#definindoclass MinhaClasse def fala puts "Ola mundo!" endend
#aplicandoobjeto = MinhaClasse.newobjeto.falaobjeto.fala
Tradicional “Olá mundo!” em Ruby!
ou apenas isso!
#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!
O que vocês acharam?:-D
Ok! Vamos começar!
Eu sou
➔ Desenvolvedor
➔ Acredito na Linguagem Ruby
➔ @MarceloBohn
Quer usar Ruby?
➔ Online: tryruby.org
➔ OS X (Apple - nativo nas versões recentes)
➔ Linux
➔ Windows (Microsoft)
➔ Ruboto no Android (Google)
➔ VM + Vagrant
Instalação
Nativa do SORVM (Ruby Version Manager)
Rbenv (Ruby Environment)
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
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 :-)
Vamos ao código!
Variáveis Objetos (duck typing)
v = 1v.classv.object_idv.methodsv = “um”v.classv = (1..5)
Ruby style
v = “bem vindo”
v.upcase
v.upcase!
v[0..2]
“sim” if v[0] == “B”
v[0] == “b” ? “sim” : “não”
Ruby style
1.to_s
“5”.to_i
[1,2,3,4].reverse
3.times { p “Ruby! ” }
Familiar X Novo
Condicionais
➔ if
➔ unless
➔ case
Familiar X Novo
Laços
➔ for
➔ while
➔ each
➔ map
Familiar X Novo
Arraya = []a = Array.new
a << 1a << “texto”a << (1..5)a += [3,4]
s = “bem vindo”s[1..5]
Familiar X Novo
Hash (chave + valor)h = {}h = Hash.new
h[:a] = 1h[“b”] = “a”h[3] = (1..5)
Familiar X Novo
Hash (chave + valor)h = {}h = Hash.new
h[:a] = 1h[“b”] = “a”h[3] = (1..5)
Symbol
Reescrever classe da linguagem(monkey patching)
class Fixnumdef dobra
self.*2 endend
1.dobra
Reescrever classe da linguagem(monkey patching)
class TrueClass def to_s ‘Sim’ if self endend
v = truev.to_s
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
+ Ruby
➔ Meta-programação
➔ Testes
➔ Rhodes
➔ Ruby on Rails
+ Ruby
➔ Meta-programação
➔ Testes
➔ Rhodes
➔ Ruby on Rails
Framework MVC de desenvolvimento webwww.rubyonrails.com.br
Ruby on RailsHappy conding!
O que é?
➔ Framework MVC
➔ Agilidade no desenvolvimento de
aplicações Web (startups)
➔ Gratuito
➔ Código aberto
➔ DRY (Don't Repeat Yourself)
Mundo sobre os trilhos
➔ Migrations
➔ RubyGems
➔ ActiveRecord (gem)
➔ ActiveController (gem)
➔ ActiveView (gem)
Preparando a subida no vagão
➔ Development, Testing and Production
➔ Rails Generate ( Scaffold, Migration, Model,
Controller, ... )
➔ Rails Sever
➔ Rails Console
Iniciar a viagem
Quanto tempo vc demora para fazer um CRUD?
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
Perguntas?
Obrigado!
Obrigado!
@MarceloBohn
Recommended