Download - Palestra Ruby on Rails SETA 2008/01
![Page 1: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/1.jpg)
Desenvolvimento Ágil com Ruby on Rails
produtividade com sustentabilidade
Douglas R. [email protected]
![Page 2: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/2.jpg)
O que é um Bom SoftwarePara o Seu Cliente ?
![Page 3: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/3.jpg)
Um Software que Simplesmente Funciona
![Page 4: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/4.jpg)
E o que é um Bom SoftwarePara você desenvolvedor ?
![Page 5: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/5.jpg)
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
![Page 6: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/6.jpg)
Somos Exigentes
![Page 7: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/7.jpg)
O que vem em Mente ?
Struts
Springs
JSF
Velocity
Tapestry
Hibernate
iBatis
CommonsAxisPOI Turbine
HivemindJDO
EJB
Tomcat
JBoss
jUnitJAVALog4JAnt
Maven
WebWorkMaverick
![Page 8: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/8.jpg)
![Page 9: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/9.jpg)
O que você realmente usa ?
![Page 10: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/10.jpg)
Ruby on Rails éFaça mais com menos
![Page 11: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/11.jpg)
Ruby Rails
Linguagem deProgramação
Framework ou Meta Framework
de desenvolvimento
O que é Ruby on Rails ?
![Page 12: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/12.jpg)
![Page 13: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/13.jpg)
Ruby
• Tecnologia Japonesa
• Lançada em 1995
• O “Python” Oriental
• Ênfase na simplicidade e elegância
• Multiplataforma (Linux, Windows, Mac, etc)
• Código aberto, gratuíto e sem restrições
Yukihiro “Matz” Matsumoto
![Page 14: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/14.jpg)
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)
![Page 15: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/15.jpg)
Conceitos Gerais
s = “texto”s.length => 5s.class => String
1.next => 21.class => Fixnum
x = nilx.class => NilClass
1.73.to_i => 11.73.class => Float
Linguagem DinâmicaNão Declaramos Tipos de Variáveis
Pura Orientação a Objeto
Tudo é um ObjetoAté o Nulo é um Objeto
Conversão de TiposTodos os Tipos Primitivos Possuem
Conversão para Outros Tipos
![Page 16: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/16.jpg)
Interface Humana xInterface Mínima
Ruby
Java
item = lista.lastitem = lista.first
item = lista.get(lista.size() - 1)item = lista.get(0)
![Page 17: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/17.jpg)
![Page 18: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/18.jpg)
Rails
• Escrito em Ruby
• Framework para Aplicações Web
• Lançado em 2004 ( 4000 linhas )
• Código aberto, gratuíto e sem restrições
• MVC + Helpers + AJAX
• Sinônimo de WEB 2.0
David Heinemeier Hansson
![Page 19: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/19.jpg)
}Extraído de um Projeto Real
![Page 20: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/20.jpg)
Basecamp
• Gerenciador de Projetos
• No ar desde Fevereiro de 2004
• + de 100 mil Clientes
![Page 21: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/21.jpg)
Framework
{ActiveRecordActionPackActionMailerActiveWebServiceActiveSupport
![Page 22: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/22.jpg)
Conceitos
![Page 23: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/23.jpg)
Web 2.0Interatividade
Design
Convergência
PadronizaçãoUsabilidade
Economia
AjaxCSS DesignFoco na Simplicidade
Web Standards
RSS
Audio
Video
Comunidades Sociais
Blog
Wiki
MobilidadeAfiliação
![Page 24: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/24.jpg)
Modo TradicionalNão MVC
BrowserNavegador (IE, Firefox, Opera)
ScriptPHP, JSP, ASP,
etc
Não centraliza o controleSem separação estilo/conteúdoFácil e rápido de desenvolver
Difícil de manter
![Page 25: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/25.jpg)
Padrão MVC
BrowserNavegador (IE, Firefox, Opera)
ControllerControle da Lógica/Fluxo
ModelRegras de negócio
ViewTemplates e Páginas de
Interação com o Usuário
MySQLPostgresOracleSQLite
Ruby
![Page 26: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/26.jpg)
Persistência de DadosA Maneira Usual
Banco deDados
MapeamentoClasse x Banco
de Dados
Classe do Modelo de Dados
Controle de Lógica da Persistência no Banco de
Dados
![Page 27: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/27.jpg)
Persistência de DadosA Maneira Rails
Banco deDados
Classe do Modelo de Dados
![Page 28: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/28.jpg)
Então Qual a Mágica ?
![Page 29: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/29.jpg)
Convention overConfiguration
“Convenção ao Invés deConfiguração”
![Page 30: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/30.jpg)
Menos Configuração
![Page 31: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/31.jpg)
Menos Código
![Page 32: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/32.jpg)
Menos Bug
![Page 33: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/33.jpg)
Menos Tempo
![Page 34: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/34.jpg)
Como Funciona ?
![Page 35: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/35.jpg)
Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher
end
![Page 36: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/36.jpg)
Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher
end
livro = Book.find :firstlivro.commentslivro.publisher.name
![Page 37: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/37.jpg)
# rails palestra
Iniciando um Projeto
![Page 38: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/38.jpg)
O que obtivemos ?MVC - Controller
MVC - Model
MVC - View
Configurações
Migrations
Arquivos ComunsJavascripts/Estilos/Imagens,etc
Testes
![Page 39: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/39.jpg)
Demonstração
![Page 40: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/40.jpg)
Por que Aprender ?
![Page 41: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/41.jpg)
Curva de Aprendizado
![Page 42: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/42.jpg)
“Não vale a pena conhecer uma linguagem que não afete o seu modo de pensar sobre programação”
Alan Perlis
![Page 43: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/43.jpg)
“Se a única ferramenta que você conhece é um martelo, tenderá a enxergar todos os seus problemas como pregos”
Abraham Maslow
![Page 44: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/44.jpg)
MERCADO
![Page 45: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/45.jpg)
9° lugarno ranking TPCI
![Page 46: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/46.jpg)
15,6%dos programadores web brasileiros já sabem Ruby
Fonte: Evans Data, INFO Exame 08/2007
![Page 47: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/47.jpg)
33%dos programadores brasileiros esperam aprender até final de
2008
Fonte: Evans Data, INFO Exame 08/2007
![Page 48: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/48.jpg)
Friends for Sale
![Page 49: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/49.jpg)
600 mil usuários ativos300 milhões de acessos mensais500 mil visitantes únicos/dia300 reqs/seg5 TB de tráfego mensal2 desenvolvedores (tempo parcial)
Infra-estrutura4 Servidores Banco de Dados6 Servidor de Aplicação Quad Core
![Page 50: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/50.jpg)
BlogBlogs.com.br
![Page 51: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/51.jpg)
Integração de Blogs
100% escrito em Rails
4 dias de desenvolvimento
30 mil visitantes únicos/dia
60 mil page views/dia
![Page 52: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/52.jpg)
Quem esta nos Trilhos de Ruby hoje ?
![Page 53: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/53.jpg)
‣ JRuby
‣ Netbeans
![Page 54: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/54.jpg)
‣ IronRuby
![Page 55: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/55.jpg)
![Page 56: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/56.jpg)
Desvantagens
![Page 57: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/57.jpg)
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)
![Page 58: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/58.jpg)
PerformanceSegundos
![Page 59: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/59.jpg)
Quando usar ?
• Projetos Novos (Web)
• Metodologias de desenvolvimento ágil (XP, Scrum)
Onde usar ?• Apache
• Microsoft IIS
• Webrick
![Page 60: Palestra Ruby on Rails SETA 2008/01](https://reader031.vdocuments.site/reader031/viewer/2022012913/555930d7d8b42a4f3d8b4934/html5/thumbnails/60.jpg)
Mais Informações