SlideShare a Scribd company logo
1 of 49
Download to read offline
Café com Java
             11/02/2012



Desenvolvimento ágil de software com

     Ruby on Rails
          Lucas Catón
Quem sou eu?

    Lucas Catón
    Bacharel em Sistemas de Informação
    Desenvolvedor Ruby on Rails há 3 anos




http://blog.lucascaton.com.br       @lucascaton
Antes que me atirem pedras...
Eu já fui programador Java...
Até que eu descobri o Ruby...
Mas eu não vim aqui dizer que:
       Ruby > Java!
Só vim dizer que Ruby...




...me fez um dev mais feliz!
Ruby on Rails
Linguagem de programação   Framework web
O que o Ruby tem de tão especial?
Interpretada
Não é necessário compilar o código!

Dinâmica
Em tempo de execução, é possível: Adicionar novo código,
extender classes, extender objetos, alterar o sistema de tipos.

Multi-paradigma
Orientada a objetos, funcional, permite programação imperativa.

Open-source
Você pode: olhar o código, estudar o código, alterar o código e
ainda melhorar o código.
E mais importante que isso tudo...

    Não precisa de “ponto e vírgula”!
Sintaxe expressíva
      Diga muito!

      Seja claro!

 Escreva menos código!
Exemplo:

    Imprimir somente pares
entre 1 e um número qualquer.
C
#include <stdio.h>
void imprime_pares(int limite)
{
  int i;
  for(i = 1; i < = limite; i++)
    if(i%2 == 0)
      printf("%dn", i);
}
Java
public void imprime_pares(int limite){
  for(int i = 1; i <= limite; i++)
    if(i%2 == 0)
      System.out.println(i);
}
Ruby
def imprime_pares(limite)
  1.upto(limite) {|i| puts i if i%2 == 0}
end
Tudo é um objeto!
1.class                   => Fixnum
1.5.class                 => Float

0.zero?                   => true
1.zero?                   => false

[1,2,3].class             => Array
[4,8].respond_to? :sort   => true

1.methods                 => lista de métodos
5.+(1)                    => 6
true e false também são objetos!



true.class    => TrueClass

false.class   => FalseClass
Até o nil é um objeto!

nil.class   => NilClass

a = nil
a.nil?      =>   true
a.methods   =>   lista de métodos
a.to_s      =>   ""
a.to_i      =>   0

a.sort      => NoMethodError:
                 undefined method `sort' for nil:NilClass
Metaprogramação
class Foo
end

Foo.class_eval do
  define_method("novo_metodo") do |arg|
      puts arg
  end
end

f = Foo.new
f.novo_metodo("123")
# 123
O que o Rails tem de tão especial?
MVC

Model - View - Controller
Ajuda a aplicar a filosofia DRY:

“Don’t repear yourself”
REST
  pattern for web apps

    Verbos HTTP:
GET, POST, PUT, DELETE
Convention over configuration

(Convenção ao invés de configuração)
Antes...
Projeto (10%)        Código (90%)
0     25        50      75      100
Depois...
Projeto (40%)        Código (60%)
0     25        50      75      100
Rails == desenvolvimento ágil
3 ambientes:

 development
  production
     test
Já vem pronto!

Rails é um metaframework.
Action Pack
                      Active Resource
Controllers & Views
                      RESTful web services

 Action Mailer
                      Active Support
  E-mail services
                        Utility classes

 Active Model
                          Railties
+ Active Record
                        Core Rails code
      ORM
Documentação MUITO boa!
Conclusão:

A linguagem é divertida!

O Ruby on Rails já vem pronto pra uso!

Roda em qualquer plataforma!

A comunidade é forte!

O mercado está quente!
Ou seja...
Links interessantes:
Ruby a partir de Java
http://www.ruby-lang.org/pt/documentacao/ruby-a-partir-de-outras-
linguagens/para-ruby-a-partir-de-java/


Guru-SP
https://groups.google.com/group/ruby-sp


Ruby Brasil
http://ruby-br.org/


Ruby Inside
http://www.rubyinside.com/
Dúvidas?
Obrigado!
http://blog.lucascaton.com.br
        @lucascaton

More Related Content

What's hot

JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasjesuinoPower
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarTiago Antônio da Silva
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On RailsAlberto Leal
 
Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Romualdo Andre
 
Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começarLeandro Ferreira
 
Aprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAfonso Gomes
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAislan Rafael
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilMarcio Garcia
 
Aula 01 - POO - Bem Vindo a Objetolândia!
Aula 01 - POO - Bem Vindo a Objetolândia!Aula 01 - POO - Bem Vindo a Objetolândia!
Aula 01 - POO - Bem Vindo a Objetolândia!Aislan Rafael
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIMario Guedes
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Primeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPPrimeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPRobert Silva
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCFlávio Lisboa
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com DjangoMarcos Petry
 
React para pensar além do Ruby
React para pensar além do RubyReact para pensar além do Ruby
React para pensar além do RubyAdimir Colen
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012jesuinoPower
 

What's hot (20)

JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e Lambdas
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On Rails
 
Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016Introdução JavaScript e DOM 2016
Introdução JavaScript e DOM 2016
 
Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começar
 
Javascript OO
Javascript OOJavascript OO
Javascript OO
 
Aprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCD
 
Tutorial JavaFX simples
Tutorial JavaFX simplesTutorial JavaFX simples
Tutorial JavaFX simples
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro Código
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
 
Aula 01 - POO - Bem Vindo a Objetolândia!
Aula 01 - POO - Bem Vindo a Objetolândia!Aula 01 - POO - Bem Vindo a Objetolândia!
Aula 01 - POO - Bem Vindo a Objetolândia!
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Primeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPPrimeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCP
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
 
React para pensar além do Ruby
React para pensar além do RubyReact para pensar além do Ruby
React para pensar além do Ruby
 
Aula 1 - Seja um programador Java
Aula 1 - Seja um programador JavaAula 1 - Seja um programador Java
Aula 1 - Seja um programador Java
 
Javascript: primeiros passos
Javascript: primeiros passosJavascript: primeiros passos
Javascript: primeiros passos
 
JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012JavaFX 2 - TDC 2012
JavaFX 2 - TDC 2012
 

Viewers also liked

A ferramenta ideal: uma questão de perspectiva.
A ferramenta ideal: uma questão de perspectiva.A ferramenta ideal: uma questão de perspectiva.
A ferramenta ideal: uma questão de perspectiva.Ricardo Valeriano
 
JRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesJRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesPaulo Igor Alves Godinho
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Lindomar ...
 
Mini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoMini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoAgence Educacional
 
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on RailsDante Regis
 
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
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On RailsMilton Moura
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On RailsAndre Ferraro
 
Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em RailsJuan Maiz
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 

Viewers also liked (20)

A ferramenta ideal: uma questão de perspectiva.
A ferramenta ideal: uma questão de perspectiva.A ferramenta ideal: uma questão de perspectiva.
A ferramenta ideal: uma questão de perspectiva.
 
JRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesJRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidades
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71Caelum ruby-on-rails-rr71
Caelum ruby-on-rails-rr71
 
SEA Rails na pratica
SEA Rails na praticaSEA Rails na pratica
SEA Rails na pratica
 
Mini-curso RoR - Apresentação
Mini-curso RoR - ApresentaçãoMini-curso RoR - Apresentação
Mini-curso RoR - Apresentação
 
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on Rails[PDF] Repensando o Desenvolvimento Web com Ruby on Rails
[PDF] Repensando o Desenvolvimento Web com Ruby on 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
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On Rails
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em Rails
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 

Similar to Café com Java e Ruby on Rails

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
 
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
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
Quick introduction to Ruby on Rails
Quick introduction to Ruby on RailsQuick introduction to Ruby on Rails
Quick introduction to Ruby on RailsWhitesmith
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails introNuno Silva
 
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
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on RailsJuan Maiz
 
Ruby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRuby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRodrigo Manhães
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsMaurício Linhares
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraDextra
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorFelipe Hummel
 

Similar to Café com Java e Ruby on Rails (20)

Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
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
 
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)
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Quick introduction to Ruby on Rails
Quick introduction to Ruby on RailsQuick introduction to Ruby on Rails
Quick introduction to Ruby on Rails
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails intro
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
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)
 
Programando php com excelência
Programando php com excelênciaProgramando php com excelência
Programando php com excelência
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Ruby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na webRuby on Rails: Produtividade e diversão na web
Ruby on Rails: Produtividade e diversão na web
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Desenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on railsDesenvolvimento web ágil e descomplicado usando ruby on rails
Desenvolvimento web ágil e descomplicado usando ruby on rails
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
 
Ruby e Rails
Ruby e RailsRuby e Rails
Ruby e Rails
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 

Café com Java e Ruby on Rails