Desenvolvimento Ágil
 com Ruby on Rails
   produtividade com sustentabilidade




         Douglas R. Roeder
       dougla...
O que é um Bom Software
   Para o Seu Cliente ?
Um Software que
Simplesmente Funciona
E o que é um Bom Software
 Para você desenvolvedor ?
Seja no mínimo:
Fácil de implementar
Fácil manutenção
Organizado (MVC)
Independente de Banco de Dados (MySQL,
Oracle, Post...
Somos Exigentes
O que vem em Mente ?

                                   WebWork
            Maverick
                          Struts
   ...
O que você
realmente usa ?
Ruby on Rails é
Faça mais com menos
O que é Ruby on Rails ?

      Ruby     Rails

                 Framework ou
Linguagem de
                Meta Framework
P...
Ruby

• Tecnologia Japonesa
• Lançada em 1995                   Yukihiro “Matz” Matsumoto

• O “Python” Oriental
• Ênfase ...
Influências por
              Linguagem

• Linguagem Prática (Perl)
• Orientação a Objetos (Smalltalk)
• Metaprogramação (S...
Conceitos Gerais

                         Linguagem Dinâmica
                      Não Declaramos Tipos de Variáveis
s = ...
Interface Humana x
         Interface Mínima
Ruby

item = lista.last
item = lista.first

Java

item = lista.get(lista.size...
Rails

• Escrito em Ruby
• Framework para Aplicações Web       David Heinemeier Hansson
• Lançado em 2004 ( 4000 linhas )
...
Extraído de um Projeto Real




             }
Basecamp


• Gerenciador de Projetos
• No ar desde Fevereiro de 2004
• + de 100 mil Clientes
Framework

    ActiveRecord


{   ActionPack
    ActionMailer
    ActiveWebService
    ActiveSupport
Conceitos
Wiki
   Foco na Simplicidade            CSS Design      Ajax

        Convergência              Interatividade      Blog
A...
Modo Tradicional
                    Não MVC

                                                 Script
         Browser
   ...
Padrão MVC
                         Browser
                Navegador (IE, Firefox, Opera)
                               ...
Persistência de Dados
                      A Maneira Usual

                    Controle de Lógica da
                   ...
Persistência de Dados
                   A Maneira Rails




Classe do Modelo                     Banco de
    de Dados   ...
Então Qual a Mágica ?
Convention over
 Configuration
“Convenção ao Invés de
   Configuração”
Menos Configuração
Menos Código
Menos Bug
Menos Tempo
Como Funciona ?
Convenção
class Book < ActiveRecord::Base
 has_many :comments
 belongs_to :publisher
end
Convenção
class Book < ActiveRecord::Base
 has_many :comments
 belongs_to :publisher
end




livro = Book.find :first
livr...
Iniciando um Projeto



# rails palestra
O que obtivemos ?
                 MVC - Controller

                   MVC - Model

                    MVC - View


    ...
Demonstração
Por que Aprender ?
Curva de Aprendizado
“Não vale a pena conhecer uma linguagem
que não afete o seu modo de pensar
sobre programação”
                            ...
“Se a única ferramenta que você
conhece é um martelo, tenderá a
enxergar todos os seus problemas
como pregos”
            ...
MERCADO
9° lugar
no ranking TPCI
15,6%
dos programadores web
brasileiros já sabem Ruby
 Fonte: Evans Data, INFO Exame 08/2007
33%
dos programadores brasileiros
esperam aprender até final de
           2008
   Fonte: Evans Data, INFO Exame 08/2007
Friends for Sale
Infra-estrutura
         4 Servidores Banco de Dados
         6 Servidor de Aplicação Quad Core



600 mil usuários ativos...
BlogBlogs.com.br
Integração de Blogs
100% escrito em Rails
4 dias de desenvolvimento
30 mil visitantes únicos/dia
60 mil page views/dia
Quem esta nos Trilhos
   de Ruby hoje ?
‣      JRuby

‣   Netbeans
‣   IronRuby
Desvantagens
Desvantagens
‣Problemas com convenção no Português
     ‣resolvido com Plugin
‣Integração com sistemas legados
     ‣é pos...
Performance
Segundos
Quando usar ?
• Projetos Novos (Web)
• Metodologias de desenvolvimento ágil (XP,
  Scrum)

           Onde usar ?
• Apache...
Mais Informações
http://www.ruby-lang.org
http://www.rubyonrails.org
http://www.rubyonbr.org
E-mail: douglasroeder@gmail.com

MSN: douglasroeder@terra.com.br




     Perguntas ?
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
Próximos SlideShares
Carregando em…5
×

Palestra Ruby on Rails SETA 2008/01

2.519 visualizações

Publicada em

Palestra sobre Ruby on Rails realizada no SETA Uniasselvi - Indaial 2008/01

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.519
No SlideShare
0
A partir de incorporações
0
Número de incorporações
48
Ações
Compartilhamentos
0
Downloads
125
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Palestra Ruby on Rails SETA 2008/01

  1. 1. Desenvolvimento Ágil com Ruby on Rails produtividade com sustentabilidade Douglas R. Roeder douglasroeder@gmail.com
  2. 2. O que é um Bom Software Para o Seu Cliente ?
  3. 3. Um Software que Simplesmente Funciona
  4. 4. E o que é um Bom Software Para você desenvolvedor ?
  5. 5. Seja no mínimo: Fácil de implementar Fácil manutenção Organizado (MVC) Independente de Banco de Dados (MySQL, Oracle, Postgres, SQLite, etc) Recursos como AJAX, Helpers, Persistência, Documentação, etc
  6. 6. Somos Exigentes
  7. 7. O que vem em Mente ? WebWork Maverick Struts Ant Log4J JBoss Velocity iBatis Tapestry JAVA jUnit Springs Tomcat JDO Hivemind Hibernate JSF Commons Axis EJB POI Maven Turbine
  8. 8. O que você realmente usa ?
  9. 9. Ruby on Rails é Faça mais com menos
  10. 10. O que é Ruby on Rails ? Ruby Rails Framework ou Linguagem de Meta Framework Programação de desenvolvimento
  11. 11. Ruby • Tecnologia Japonesa • Lançada em 1995 Yukihiro “Matz” Matsumoto • O “Python” Oriental • Ênfase na simplicidade e elegância • Multiplataforma (Linux, Windows, Mac, etc) • Código aberto, gratuíto e sem restrições
  12. 12. Influências por Linguagem • Linguagem Prática (Perl) • Orientação a Objetos (Smalltalk) • Metaprogramação (Smalltalk) • Sintaxe (Smalltalk, Eiffel e Ada) • Tratamento de Exceções (Java e Python)
  13. 13. Conceitos Gerais Linguagem Dinâmica Não Declaramos Tipos de Variáveis s = “texto” s.length => 5 s.class => String Pura Orientação a Objeto 1.next => 2 1.class => Fixnum Tudo é um Objeto x = nil Até o Nulo é um Objeto x.class => NilClass Conversão de Tipos 1.73.to_i => 1 Todos os Tipos Primitivos Possuem 1.73.class => Float Conversão para Outros Tipos
  14. 14. Interface Humana x Interface Mínima Ruby item = lista.last item = lista.first Java item = lista.get(lista.size() - 1) item = lista.get(0)
  15. 15. Rails • Escrito em Ruby • Framework para Aplicações Web David Heinemeier Hansson • Lançado em 2004 ( 4000 linhas ) • Código aberto, gratuíto e sem restrições • MVC + Helpers + AJAX • Sinônimo de WEB 2.0
  16. 16. Extraído de um Projeto Real }
  17. 17. Basecamp • Gerenciador de Projetos • No ar desde Fevereiro de 2004 • + de 100 mil Clientes
  18. 18. Framework ActiveRecord { ActionPack ActionMailer ActiveWebService ActiveSupport
  19. 19. Conceitos
  20. 20. Wiki Foco na Simplicidade CSS Design Ajax Convergência Interatividade Blog Audio Design Economia Web 2.0 RSS Video Padronização Usabilidade Web Standards Comunidades Sociais Mobilidade Afiliação
  21. 21. Modo Tradicional Não MVC Script Browser PHP, JSP, ASP, Navegador (IE, Firefox, Opera) etc Não centraliza o controle Sem separação estilo/conteúdo Fácil e rápido de desenvolver Difícil de manter
  22. 22. Padrão MVC Browser Navegador (IE, Firefox, Opera) Ruby View Templates e Controller Model Páginas de Controle da Regras de MySQL Interação com Lógica/Fluxo negócio Postgres o Usuário Oracle SQLite
  23. 23. Persistência de Dados A Maneira Usual Controle de Lógica da Persistência no Banco de Dados Mapeamento Classe x Banco de Dados Classe do Modelo Banco de de Dados Dados
  24. 24. Persistência de Dados A Maneira Rails Classe do Modelo Banco de de Dados Dados
  25. 25. Então Qual a Mágica ?
  26. 26. Convention over Configuration “Convenção ao Invés de Configuração”
  27. 27. Menos Configuração
  28. 28. Menos Código
  29. 29. Menos Bug
  30. 30. Menos Tempo
  31. 31. Como Funciona ?
  32. 32. Convenção class Book < ActiveRecord::Base has_many :comments belongs_to :publisher end
  33. 33. Convenção class Book < ActiveRecord::Base has_many :comments belongs_to :publisher end livro = Book.find :first livro.comments livro.publisher.name
  34. 34. Iniciando um Projeto # rails palestra
  35. 35. O que obtivemos ? MVC - Controller MVC - Model MVC - View Configurações Migrations Arquivos Comuns Javascripts/Estilos/Imagens,etc Testes
  36. 36. Demonstração
  37. 37. Por que Aprender ?
  38. 38. Curva de Aprendizado
  39. 39. “Não vale a pena conhecer uma linguagem que não afete o seu modo de pensar sobre programação” Alan Perlis
  40. 40. “Se a única ferramenta que você conhece é um martelo, tenderá a enxergar todos os seus problemas como pregos” Abraham Maslow
  41. 41. MERCADO
  42. 42. 9° lugar no ranking TPCI
  43. 43. 15,6% dos programadores web brasileiros já sabem Ruby Fonte: Evans Data, INFO Exame 08/2007
  44. 44. 33% dos programadores brasileiros esperam aprender até final de 2008 Fonte: Evans Data, INFO Exame 08/2007
  45. 45. Friends for Sale
  46. 46. Infra-estrutura 4 Servidores Banco de Dados 6 Servidor de Aplicação Quad Core 600 mil usuários ativos 300 milhões de acessos mensais 500 mil visitantes únicos/dia 300 reqs/seg 5 TB de tráfego mensal 2 desenvolvedores (tempo parcial)
  47. 47. BlogBlogs.com.br
  48. 48. Integração de Blogs 100% escrito em Rails 4 dias de desenvolvimento 30 mil visitantes únicos/dia 60 mil page views/dia
  49. 49. Quem esta nos Trilhos de Ruby hoje ?
  50. 50. ‣ JRuby ‣ Netbeans
  51. 51. ‣ IronRuby
  52. 52. Desvantagens
  53. 53. Desvantagens ‣Problemas com convenção no Português ‣resolvido com Plugin ‣Integração com sistemas legados ‣é possível, mas reduz a produtividade ‣Poucos servidores ‣um quadro que já esta mudando ‣Performance ‣Atualmente o maior problema de Ruby 1.8 (stable) ‣Problema solucionado com Ruby 1.9 (development)
  54. 54. Performance Segundos
  55. 55. Quando usar ? • Projetos Novos (Web) • Metodologias de desenvolvimento ágil (XP, Scrum) Onde usar ? • Apache • Microsoft IIS • Webrick
  56. 56. Mais Informações
  57. 57. http://www.ruby-lang.org
  58. 58. http://www.rubyonrails.org
  59. 59. http://www.rubyonbr.org
  60. 60. E-mail: douglasroeder@gmail.com MSN: douglasroeder@terra.com.br Perguntas ?

×