Ruby on Rails
    produtividade e diversão na web




                  Rodrigo Manhães
      Núcleo de Pesquisa em Sistemas de Informação/IFF
          Laboratório de Ciências Matemáticas/UENF
          Gerência de Recursos   Computacionais/UENF
programar para a web é...




              
divertido?




     
produtivo?




     
     
     
               
    http://rubyonrails.org
                 
    http://rubyonrails.pro.br
     
linguagem dinâmica




             
linguagem dinâmica
      expressividade




             
linguagem dinâmica
          expressividade
    tudo são objetos (mesmo!)




                 
linguagem dinâmica
          expressividade
    tudo são objetos (mesmo!)
        metaprogramação




                 
linguagem dinâmica
          expressividade
    tudo são objetos (mesmo!)
        metaprogramação
         classes abertas




                 
linguagem dinâmica
            expressividade
      tudo são objetos (mesmo!)
           metaprogramação
            classes abertas
    vários modos de fazer as coisas


                    
linguagem dinâmica
            expressividade
      tudo são objetos (mesmo!)
           metaprogramação
            classes abertas
    vários modos de fazer as coisas
      princípio da menor surpresa

                    
linguagem dinâmica
            expressividade
      tudo são objetos (mesmo!)
           metaprogramação
            classes abertas
    vários modos de fazer as coisas
      princípio da menor surpresa

 
          alta extensibilidade
                    
     
HARMONIA



        
     
     
model-view-controller




               
model-view-controller
           restful




               
model-view-controller
           restful
         full-stack




               
model-view-controller
           restful
          full-stack
      alta produtividade




               
model-view-controller
             restful
           full-stack
       alta produtividade
    ideal para projetos ágeis



                 
model-view-controller
                 restful
               full-stack
           alta produtividade
        ideal para projetos ágeis
    grande número de plugins e gems

                     
model-view-controller
                 restful
               full-stack
           alta produtividade
        ideal para projetos ágeis
    grande número de plugins e gems
     comunidade atuante e produtiva
                     
model-view-controller
                 restful
               full-stack
           alta produtividade
        ideal para projetos ágeis
    grande número de plugins e gems
     comunidade atuante e produtiva
 
             software livre
                    
     
     
     
     
new.html.erb




     
app/views/produtos/new.haml




          
app/views/produtos/new.html.erb




              
app/controllers/produtos_controller.rb




                   
     
app/controllers/produtos_controller.rb




                    
app/models/produto.rb




     
convenção mais que configuração




                    
app/views/produtos/new.html.erb




              
app/views/produtos/new.html.erb




              
app/controllers/produtos_controller.rb




                    
app/models/produto.rb




     
app/models/produto.rb




     
app/models/produto.rb




     
     
     
app/models/produto.rb




     
app/models/produto.rb




     
     
configuração zero




             
convenções




         
DRY


    don't repeat yourself




               
app/models/produto.rb




     
     
     
     
simplicidade


    o modo Ryby/Rails de fazer as coisas




                      
máquina de estado




             
acts_as_state_machine




               
autorização




          
acl9




      
paginação




         
will_paginate




           
     
desenvolvimento


            rápido




     
sem compilação



        sem deployment



         sem reiniciar
           servidor
     
 
    http://agilemanifesto.org
                 
     
     
behaviour-driven development




                  
     
     
     
...e quem usa?




           
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
e onde aprender?




            
                    
    http://guias.rubyonrails.pro.br
                             
    http://www.caelum.com.br/curso/rr-71-ruby-on-rails
    http://railscasts.com
                
                 
    http://why.nomedojogo.com
             
    http://tryruby.org
                  
    http://www.rubyinside.com.br
                          
    http://aprendaaprogramar.rubyonrails.pro.br
     
     
     
imagens
(5) http://www.flickr.com/photos/redjar/113152393/
(6) http://www.flickr.com/photos/hugo90/4139409680
(18) http://www.flickr.com/photos/linkq/3413681899
(48) http://www.flickr.com/photos/mindonfire/4331340795
(57) http://www.flickr.com/photos/elixir/193006773
(58) http://www.flickr.com/photos/topgold/312364
(59) http://www.flickr.com/photos/kmndr/3028471260
(68 e 69) http://www.flickr.com/photos/az1172/3841143960
(75) http://www.flickr.com/photos/oskay/265899811
(76) http://slideshare.net/felipernb/php-no-coisa-de-moleque-
presentation
(104) http://www.flickr.com/photos/yogendra174/4358242305


                                    
eu na web

Github: http://github.com/rodrigomanhaes


Slideshare: http://www.slideshare.net/rodrigomanhaes


Twitter: http://www.twitter.com/rodrigomanhaes


Blog (volta em breve!): http://programacaoradical.blogspot.com


Blog não técnico: http://fanatismoindeciso.blogspot.com


E-mail: rmanhaes@gmail.com


                                 

Ruby on Rails: Produtividade e diversão na web