SlideShare a Scribd company logo
1 of 30
Download to read offline
It is easy to program in Ruby,
but Ruby is not a simple language

Linguagem de programação
www.ruby-lang.org/pt
Novembro de 2013
Quais linguagens de
programação vc
conhece?
Java, C (#,++,Objective), PHP, Delphi, ...
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!
;-)
#definindo
class MinhaClasse
def fala
puts "Ola mundo!"
end
end

#aplicando
objeto = MinhaClasse.new
objeto.fala
Tradicional “Olá mundo” em Ruby!
#definindo
class MinhaClasse
def fala
puts "Ola mundo!"
end
end
#aplicando
ou apenas isso!
objeto = MinhaClasse.new
objeto.fala

Tradicional “Olá mundo” em Ruby!
#definindo
class MinhaClasse
def fala(frase, numero=1)
puts numero.times {puts
frase}
end
end
#aplicando
objeto = MinhaClasse.new
objeto.fala("ola mundo")
objeto.fala "ruby ", 3
Tradicional “Olá mundo” em Ruby!
Sou
➔ Desenvolvedor
➔ Professor (:active => false)
➔ Acredito na Linguagem Ruby
➔ @MarceloBohn
Ruby agora!
➔ Online: tryruby.org
➔ Nativo no OS X (Apple)
➔ Linux(free), Windows(Microsoft), …
➔ Ruboto no Android (Google)
➔ VM + Vagrant
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 :-)
Linguagem interpretada

ruby arquivo.rb
Console de testes

irb
OBS: RVM ( Ruby Version Manager )
Variáveis Objetos (duck typing)
v = 1
v.class
v.object_id
v.methods
v = “um”
v.class
v = (1..5)
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! ” }
Familiar X Novo
Condicionais

Laços

➔ if

➔ for

➔ unless

➔ while

➔ case

➔ each
➔ map
Familiar X Novo
Array
a = []
a << 1
a << “texto”
a << (1..5)
a += [3,4]
s = “bem vindo”
s[1..5]

Hash
h = {}
h[:a] = 1
h[:b] = “a”
Reescrever classe da linguagem
(monkey patching)

class Fixnum
def dobra
self.*2
end
end
1.dobra
Reescrever classe da linguagem
(monkey patching)

class TrueClass
def to_s
‘Sim’ if self
end
end
v = true
v.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úmero de 1 até 5,
converte em array, inverte a ordem, junta em
uma string, separa novamente em array,
multiplica todos elemente por dois
+ Ruby
➔ Meta-programação
➔ Testes
➔ Rhodes
➔ Ruby on Rails
Ruby on Rails
Happy conding!

Framework de desenvolvimento web
www.rubyonrails.com.br
Apresentação
➔ Framework MVC
➔ Agilidade no desenvolvimento de aplicações
Web
➔ Gratuito
➔ Código aberto
➔ DRY (Don't Repeat Yourself)
Mundo sobre os trilhos
➔ Rails Console
➔ Migrations
➔ RubyGems
➔ ActiveRecord
➔ ActiveController
➔ ActiveView
Preparando a subida no vagão
➔ Development, Testing and Production
➔ Rails Generate ( Scaffold, ... )
➔ Rails sever
➔ Rails console
Iniciar a viagem
Quanto tempo vc demora para fazer um
CRUD?
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

More Related Content

What's hot

Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e ExpressivoRodrigo Martins
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
Introdução a Linguagem Ruby
Introdução a Linguagem RubyIntrodução a Linguagem Ruby
Introdução a Linguagem RubyDuda Dornelles
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e DiversãoJulio Monteiro
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Railsoverduka
 
Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on RailsSergio Henrique
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisWende Mendes
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaJonata Weber
 

What's hot (20)

Groovy
GroovyGroovy
Groovy
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Ruby
RubyRuby
Ruby
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e Expressivo
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Introdução a Linguagem Ruby
Introdução a Linguagem RubyIntrodução a Linguagem Ruby
Introdução a Linguagem Ruby
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
A Linguagem Ruby
A Linguagem RubyA Linguagem Ruby
A Linguagem Ruby
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e Diversão
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on Rails
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito mais
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a Aula
 

Similar to Por que Ruby não é uma linguagem simples

Ruby
RubyRuby
Rubybesen
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011JogosUnisinos
 
Começando com Ruby - III SEICOM
Começando com Ruby - III SEICOMComeçando com Ruby - III SEICOM
Começando com Ruby - III SEICOMKenner Kliemann
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Hugo Maia Vieira
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosGregorio Kusowski
 
Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Danilo Pinotti
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao RubyMilton Moura
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1garux
 

Similar to Por que Ruby não é uma linguagem simples (20)

Ruby
RubyRuby
Ruby
 
Shell script
Shell scriptShell script
Shell script
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
Começando com Ruby - III SEICOM
Começando com Ruby - III SEICOMComeçando com Ruby - III SEICOM
Começando com Ruby - III SEICOM
 
Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)Introdução ao Shell Script (versão estendida)
Introdução ao Shell Script (versão estendida)
 
Fpar aula5
Fpar aula5Fpar aula5
Fpar aula5
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
 
Curso shell
Curso shellCurso shell
Curso shell
 
Active record
Active recordActive record
Active record
 
Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)
 
shell bash Fpar aula6
shell bash Fpar aula6shell bash Fpar aula6
shell bash Fpar aula6
 
Groovy
GroovyGroovy
Groovy
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao Ruby
 
Perl Moderno, dia1
Perl Moderno, dia1Perl Moderno, dia1
Perl Moderno, dia1
 

Por que Ruby não é uma linguagem simples