SlideShare a Scribd company logo
1 of 38
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

More Related Content

Similar to Conhecendo o 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
elliando dias
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Felipe Nascimento
 

Similar to Conhecendo o Ruby on Rails (20)

ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
React nos Trilhos
React nos TrilhosReact nos Trilhos
React nos Trilhos
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
Direto das Trincheiras: Boas e más práticas de aplicações Ruby em ambientes c...
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 

Recently uploaded

Recently uploaded (8)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Conhecendo o Ruby on Rails