Conhecendo o 
 Ruby on Rails




   Jony dos Santos Kostetzer
   http://jonysk.net  |  jony@jonysk.net
Antes de tudo…
   Ruby – Linguagem




   Rails – Framework
Ruby (visão geral)
   Criada em 1993 por Yukihiro “Matz” Matsumoto 
   Inspirada em Perl, Smalltalk, Ada, Eiffel, Lisp
   Tudo é objeto e retona um valor
   Tipagem dinâmica e forte
   Classes abertas
   Uso Intensivo de blocos
   Meta‐programação / geração de código em runtime
   Simplicidade, elegância
   Codifique menos, faça mais = Produtividade
Rails
   Framework (template) para aplicações web
   Criado em 2004 por David Heinemeier Hansson
   Extraído de uma aplicação real – Basecamp
   37Signals
   Open Source
Por que Rails?
   Vantagem principal: RUBY
   Simples e eficiente ‐ focado em resolver problemas reais

   Lei de Pareto ‐ 80/20
   AGILIDADE

   Provê o essencial – extensível por plugins

   Curva de aprendizado: você já inicia em uma arquitetura sólida.
   Comunidade extremamente ativa e vibrante

   PADRÕES E CONVENÇÕES 
Convention over configuration
      “Convenção ao invés de configuração”
Tradução de convention over configuration para desenvolvedores


                              Menos código



Créditos: Júlio Santos Monteiro
Tradução de convention over configuration para clientes


                              Menos tempo



Créditos: Júlio Santos Monteiro
Tradução de convention over configuration para vendedores


                                  Maior lucro



Créditos: Júlio Santos Monteiro
Don’t Repeat Yourself
  “Fazer uma vez, bem feito, e com testes”
Agile Development
“Processos iterativos, desenvolvimento incremental, etc”
Manifesto ágil
   Individuals and interactions over processes and tools
   Working software over comprehensive documentation
   Customer collaboration over contract negotiation
   Responding to change over following a plain 
Adaptar‐se à mudança não 
     pode ser caro!
     “Que seja feita a vontade do cliente”
Adaptar‐se à mudança não 
     pode ser caro!
     “Que seja feita a vontade do cliente”
Convenções ‐ MVC
   Divisão em camadas: o velho e onipresente “dividir 
    para conquistar”
   Model (Modelos) – Camada de regras de negócio
   Views – Camada de apresentação (qualquer formato)  
   Controller – Articulação entre models & views – 
    interpreta solicitação e invoca relacionados 
MVC no Rails
Rails ‐ Componentes
   ActiveRecord ‐ ORM
   ActiveResource ‐ REST Client
   ActionPack 
     ActionController
     ActionView

   ActionMailer
Helpers
   AJAX
   Efeitos visuais
   Formulários
   Assets (imagens, estilos)
   Cache
   Rotas
   + diversos helpers em plugins
Demonstração
Convenções ‐ REST

                Exibir/buscar   Criar    Alterar   Remover
REST/HTTP       GET             POST     PUT       DELETE

Rails  (actions) show           create   update    destroy

SQL             select          insert   update    delete
Testes
   Sofware x Acupuntura
   Diversos “sabores” e um objetivo.
   TestUnit
   Shoulda
   RSpec (User stories, Webrat, etc)
   Plugins para integração com Selenium, Watir , entre 
    outros.
Mercado
Empresas
BBC                    Oakley
CapGemini              NBC
BPN                    Siemens
NASA                   ThoughtWorks
Cisco                  Yahoo!
C|Net                  JohnDeere
EA (Electronic Arts)   New York Times
JP Morgan
Virtual Machines




                   ?!
     “MRI”
Deployment
   Servidores de aplicação
       FastCGI  
       Mongrel
       Thin
       Ebb
       Passenger (mod_rails – Apache)

   Servidores web
     Apache
     Lighttpd
     Nginx
Hospedagens
Projetos
   opensourcerails.com
   webdeveloper.econsultant.com/ruby‐rails‐projects‐
    sites
   rubyonrails.com/applications
   workingwithrails.com/browse/sites
   rails100.pbwiki.com
Rails100
Brasil




+ de 100 empresas brasileiras cadastradas no Working With Rails
Mercado
   Crescimento na utilização 
   Demanda por profissionais = + vagas
   Offshoring: economia + qualidade = oportunidades
   Bons salários
   Mercado brasileiro em ascenção
Utilização ‐ WWR
1.   Estados Unidos – 3018

2.   Inglaterra – 553

3.   Brasil – 458

4.   Índia – 415

5.   Alemanha – 344



•    Usuários registrados no Working with Rails ‐ 11635  
     (até 08/06/2008)
Aprendendo Ruby on Rails
Migrando
Mais informações
   rubyonrails.pro.br e rubyonrails.com 
     Podcasts
     Apresentações
     Informações gerais  

   akitaonrails.com.br
       Novidades e discussões em geral

   nomedojogo.com
       Novidades do Rails (Edge Rails)

   Google groups: rails‐br
Formação Desenvolvedor Web com 
           Ruby on Rails
                                • Linguagem SQL padrão ANSI – 20hrs
                                • Introdução à linguagem Ruby – 20hrs
                                • Ruby on Rails prático – 40hrs

                            Próxima turma aos sábados em São Leopoldo!

www.unisinos.br/institutoinf 
institutoinf@unisinos.br 
Fone: (51) 3328‐ 2221




              MATRICULAS ABERTAS!
Duvidas?
jonysk.net |  jony@jonysk.net

Conhecendo o Ruby on Rails