Palestra Ruby on Rails SETA 2008/01

2,553 views

Published on

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

Published in: Technology
  • Be the first to comment

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 ?

×