Pensando ao contrário - Por que você deveria considerar Rails no seu próximo projeto?
Upcoming SlideShare
Loading in...5
×
 

Pensando ao contrário - Por que você deveria considerar Rails no seu próximo projeto?

on

  • 1,618 views

 

Statistics

Views

Total Views
1,618
Slideshare-icon Views on SlideShare
1,601
Embed Views
17

Actions

Likes
0
Downloads
15
Comments
0

2 Embeds 17

http://www.slideshare.net 13
http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Pensando ao contrário - Por que você deveria considerar Rails no seu próximo projeto? Pensando ao contrário - Por que você deveria considerar Rails no seu próximo projeto? Presentation Transcript

    • Porque você deveria considerar Ruby on Rails para seu próximo projeto ? anderson leite
    • anderson leite anderson.leite@caelum.com.br www.andersonleite.com.br @anderson_leite
    • Porque você deveria CONSIDERAR ... para seu próximo projeto ?
    • http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
    • http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
    • "Precisamos de algumas idéias malucas, vejam só para onde as idéias normais nos levaram." -- George Bernard Shaw
    • Vamos começar tomando algumas decisões erradas.
    • Dick Fosbury
    • Dick Fosbury
    • Agile web development with Rails
    • Mas...Ruby on Rails faz #{qualquer_coisa_mirabolante_aqui} ?
    • Mas...Ruby on Rails faz #{qualquer_coisa_mirabolante_aqui} ? NÃO ?! HA!
    • Mas...Ruby on Rails faz #{qualquer_coisa_mirabolante_aqui} ? NÃO ?! HA! “Tornar as coisas simples ...fáceis e as coisas complexas ...possíveis”
    • class Carro end
    • class Carro end
    • class Carro carro = Carro.new carro.turbo end NoMethodError: undefined method ‘turbo’
    • class Carro carro = Carro.new carro.turbo end NoMethodError: undefined method ‘turbo’ class Oficina def turbina(carro) def carro.turbo puts ‘turbinado!’ end end end
    • class Carro carro = Carro.new carro.turbo end NoMethodError: undefined method ‘turbo’ class Oficina def turbina(carro) def carro.turbo puts ‘turbinado!’ end end end
    • class Carro carro = Carro.new carro.turbo end NoMethodError: undefined method ‘turbo’ class Oficina carro = Carro.new def turbina(carro) oficina = Oficina.new def carro.turbo oficina.turbina(carro) puts ‘turbinado!’ end carro.turbo end # turbinado! end
    • Metaprogramação class Carro carro = Carro.new carro.turbo end NoMethodError: undefined method ‘turbo’ class Oficina carro = Carro.new def turbina(carro) oficina = Oficina.new def carro.turbo oficina.turbina(carro) puts ‘turbinado!’ end carro.turbo end # turbinado! end
    • class Carro end
    • class Carro end
    • class Carro class Carro def method_missing(name, *args) puts “Método #{name} .. ?” end end end
    • class Carro class Carro def method_missing(name, *args) puts “Método #{name} .. ?” end end end carro = Carro.new carro.acelera
    • class Carro class Carro def method_missing(name, *args) puts “Método #{name} .. ?” end end end carro = Carro.new carro.acelera
    • class Carro class Carro def method_missing(name, *args) puts “Método #{name} .. ?” end end end carro = Carro.new carro.acelera # Método acelera .. ?
    • Method Missing class Carro class Carro def method_missing(name, *args) puts “Método #{name} .. ?” end end end carro = Carro.new carro.acelera # Método acelera .. ?
    • Metaprogramação + Method Missing =
    • Metaprogramação + Method Missing = class Carro < ActiveRecord::Base end
    • Metaprogramação + Method Missing = class Carro < ActiveRecord::Base end carro = Carro.new carro.find(2)
    • Metaprogramação + Method Missing = class Carro < ActiveRecord::Base end carro = Carro.new carro.find(2) carro.find_by_name(‘monza’)
    • Metaprogramação + Method Missing = class Carro < ActiveRecord::Base end carro = Carro.new carro.find(2) carro.find_by_name(‘monza’) carro.find_by_name_and_year(‘monza’,1990) carros = Carro.all
    • Documentação...
    • Documentação...
    • Documentação...
    • Cucumber Live coding
    • TDD / BDD
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis.
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema E clico no link “Adicionar novo carro”
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema E clico no link “Adicionar novo carro” E preencho os campos do formulário
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema E clico no link “Adicionar novo carro” E preencho os campos do formulário Então o novo carro deve aparecer na home
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema E clico no link “Adicionar novo carro” E preencho os campos do formulário Então o novo carro deve aparecer na home
    • TDD / BDD Funcionalidade: Controle de venda de carros Para administrar minha loja e obter mais lucro quero controlar a entrada e saída de automóveis. Cenário: Cadastro de carros Dado que estou na página inicial do sistema E clico no link “Adicionar novo carro” E preencho os campos do formulário Então o novo carro deve aparecer na home
    • http://vraptor.caelum.com.br/
    • usem C# e .NEt obrigado! anderson.leite@caelum.com.br www.andersonleite.com.br @anderson_leite