SlideShare una empresa de Scribd logo
1 de 75
Ruby, Rails e diversão Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008
Júlio Santos Monteiro?
seja.a2c.com.br
Ruby on Rails desde 2006
[object Object]
[object Object]
[object Object],[object Object],[object Object],(David Heinemeier Hansson)‏
“ Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)‏
Por que o Ruby, se já temos Java, Python, Perl, PHP, Lisp, .Net, Obj-C, ActionScript, Erlang, Lua, Smalltalk, Haskell,  (digite aqui o nome de uma linguagem) , etc?
1993: Yukihiro Matsumoto quer uma linguagem mais humana.
1993: Yukihiro Matsumoto faz uma linguagem mais humana.
1993: Yukihiro Matsumoto faz uma linguagem menos máquina, mais humana.
1993: Yukihiro Matsumoto cria o Java
1993: Yukihiro Matsumoto cria o Java
1993: Yukihiro Matsumoto cria o Ruby
O que é Ruby? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],O que é Ruby?
[object Object],[object Object],[object Object],[object Object],[object Object],Influências
Características ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
[object Object],[object Object]
 
1
1 Ei, 1, me responda a seguinte pergunta:  class
1 Fixnum
[object Object]
[object Object],[object Object]
Palestra “A Beleza do Ruby”, de Glenn Vanderburg
Observações ,[object Object],[object Object],[object Object]
Blocos
Blocos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],{|a, b| # código com a, b }
Blocos obj.each do |e| e.save! end array.group_by {|a| a.type} (&quot;a&quot;..&quot;z&quot;).each do |char| puts char end
Blocos File.open(&quot;config.txt&quot;) do |in| in.each_line do |line| process_config_line(line)‏ end end (0..100).collect {|n| User.find(n).destroy }
Sintaxe para servir ,[object Object],[object Object],[object Object]
Exemplos ,[object Object],[object Object],[object Object]
Classes são abertas
Classes são abertas ,[object Object],[object Object],[object Object],[object Object]
Exemplos ,[object Object],[object Object],[object Object],[object Object],[object Object],class String def blank? self == &quot;&quot; end end
Você, amanhã, na sua empresa: “Chefinho, vamos usar Ruby?”
O Chefe: “Por que nós iriamos usar Ruby?”
Você: “A linguagem é bonita, fácil de escrever, não é verbalmente pesada, e é extensível.”
O Chefe: “F*da-se. Para quê tudo isso?Vamos continuar com nosso excelente _ _ _ _.”
Qual a utilidade disso tudo?
Código simples
Pouco código
É mais fácil achar e corrigir um  bug  em: a) 100 LOC b) 10.000 LOC c) 10^42 LOC
Facilidade de correção
Facilidade para extensão
Menos tempo de desenvolvimento
Menos tempo para entregar um produto
 
(Obs: quando estiver preparando a apresentação, colocar aqui blá-blá-blá sobre a história do Rails e da 37signals)‏
Direto ao ponto:
No Rails, você se preocupa com a Lógica de Negócio
Classe Livro: Pertence a um Usuário, tem várias Tags e Tópicos, e tem um Upload. O subtítulo deve ter entre 0 e 256 caracteres A descrição deve ter entre 1 e 1024 caracteres. Tem uma máquina de estados com vários estados e eventos.
class Book < ActiveRecord::Base # Relacionamentos belongs_to :user has_and_belongs_to_many :tags has_and_belongs_to_many :topics has_one :upload # Validações validates_length_of :subtitle, :mininum => 0, :maximum => 256, :allow_nil => true validates_length_of :description, :mininum => 1, :maximum => 1024
acts_as_state_machine :initial => :registred state :passive state :registred state :waiting_processing state :in_processing state :preview state :published state :unpublished event :register do transitions :from => :passive, :to => :registred end # ... end
Hey, mas o framework ______ também faz isso!
Rails usa Ruby
Rails agora é (pelo jeito)  mainstream
 
 
 
 
 
 
Observações:
Ruby é difícil
Ruby é difícil pois é diferente
Ruby é difícil pois é diferente e é meta-programável
Ruby on Rails é difícil
Ruby on Rails é difícil pois é um framework
Ruby on Rails é difícil pois é um framework e usa Ruby.
Mas vale apena, ao menos aprender para conhecer e aproveitar suas idéias.
Obrigado! Júlio Santos Monteiro <julio@monteiro.eti.br> 25 de Novembro de 2008

Más contenido relacionado

La actualidad más candente

Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
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
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + railsMarcelo Bohn
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
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
 

La actualidad más candente (11)

A Linguagem Ruby
A Linguagem RubyA Linguagem Ruby
A Linguagem Ruby
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
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
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + rails
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Seja DinâMico Com Python
Seja DinâMico Com PythonSeja DinâMico Com Python
Seja DinâMico Com Python
 
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
 

Destacado

Naica Acavernadosgigantes - Places of crystals
Naica Acavernadosgigantes - Places of crystalsNaica Acavernadosgigantes - Places of crystals
Naica Acavernadosgigantes - Places of crystalsPupi Crystel
 
Misterio Por Serenaider
Misterio Por SerenaiderMisterio Por Serenaider
Misterio Por Serenaiderserenaider
 
Introductory_Remarks_Doug_Ward
Introductory_Remarks_Doug_WardIntroductory_Remarks_Doug_Ward
Introductory_Remarks_Doug_WardDoug Ward
 
Martha J. Christmas In Jazz
Martha J. Christmas In JazzMartha J. Christmas In Jazz
Martha J. Christmas In Jazzmarthaj
 
金手指參賽作品:Google Chrome 創意團購專案
金手指參賽作品:Google Chrome 創意團購專案金手指參賽作品:Google Chrome 創意團購專案
金手指參賽作品:Google Chrome 創意團購專案wawa0707
 
Ticsindodesaludprovincia
TicsindodesaludprovinciaTicsindodesaludprovincia
TicsindodesaludprovinciaPUCMM
 

Destacado (8)

Naica Acavernadosgigantes - Places of crystals
Naica Acavernadosgigantes - Places of crystalsNaica Acavernadosgigantes - Places of crystals
Naica Acavernadosgigantes - Places of crystals
 
Misterio Por Serenaider
Misterio Por SerenaiderMisterio Por Serenaider
Misterio Por Serenaider
 
Introductory_Remarks_Doug_Ward
Introductory_Remarks_Doug_WardIntroductory_Remarks_Doug_Ward
Introductory_Remarks_Doug_Ward
 
Martha J. Christmas In Jazz
Martha J. Christmas In JazzMartha J. Christmas In Jazz
Martha J. Christmas In Jazz
 
Eks Ut På Nett
Eks Ut På NettEks Ut På Nett
Eks Ut På Nett
 
TEES - Apresentacao Final
TEES - Apresentacao FinalTEES - Apresentacao Final
TEES - Apresentacao Final
 
金手指參賽作品:Google Chrome 創意團購專案
金手指參賽作品:Google Chrome 創意團購專案金手指參賽作品:Google Chrome 創意團購專案
金手指參賽作品:Google Chrome 創意團購專案
 
Ticsindodesaludprovincia
TicsindodesaludprovinciaTicsindodesaludprovincia
Ticsindodesaludprovincia
 

Similar a Ruby Rails Introdução

Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On RailsAlberto Leal
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaGabriel Molter
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
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
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
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
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Julio Monteiro
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Rubycodeland
 

Similar a Ruby Rails Introdução (20)

Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On Rails
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
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
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
O mundo visto de dentro do Ruby
O mundo visto de dentro do RubyO mundo visto de dentro do Ruby
O mundo visto de dentro do Ruby
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Ruby and Rails
Ruby and RailsRuby and Rails
Ruby and Rails
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
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
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Entendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é RubyEntendendo um pouco melhor o que é Ruby
Entendendo um pouco melhor o que é Ruby
 

Más de Julio Monteiro

Por que Ruby on Rails?
Por que Ruby on Rails?Por que Ruby on Rails?
Por que Ruby on Rails?Julio Monteiro
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoJulio Monteiro
 
Como criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutosComo criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutosJulio Monteiro
 
Desenvolvimento Web com Rails
Desenvolvimento Web com RailsDesenvolvimento Web com Rails
Desenvolvimento Web com RailsJulio Monteiro
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on RailsJulio Monteiro
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubJulio Monteiro
 
Como criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutosComo criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutosJulio Monteiro
 
Ubuntu Enterprise Cloud
Ubuntu Enterprise CloudUbuntu Enterprise Cloud
Ubuntu Enterprise CloudJulio Monteiro
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Julio Monteiro
 

Más de Julio Monteiro (10)

Por que Ruby on Rails?
Por que Ruby on Rails?Por que Ruby on Rails?
Por que Ruby on Rails?
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
 
Como criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutosComo criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutos
 
MongoDB
MongoDBMongoDB
MongoDB
 
Desenvolvimento Web com Rails
Desenvolvimento Web com RailsDesenvolvimento Web com Rails
Desenvolvimento Web com Rails
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHub
 
Como criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutosComo criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutos
 
Ubuntu Enterprise Cloud
Ubuntu Enterprise CloudUbuntu Enterprise Cloud
Ubuntu Enterprise Cloud
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
 

Ruby Rails Introdução