Palestra Ruby on Rails SETA 2008/01
-
Upload
douglas-roeder -
Category
Technology
-
view
2.248 -
download
0
description
Transcript of Palestra Ruby on Rails SETA 2008/01
Desenvolvimento Ágil com Ruby on Rails
produtividade com sustentabilidade
Douglas R. [email protected]
O que é um Bom SoftwarePara o Seu Cliente ?
Um Software que Simplesmente Funciona
E o que é um Bom SoftwarePara você desenvolvedor ?
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
Somos Exigentes
O que vem em Mente ?
Struts
Springs
JSF
Velocity
Tapestry
Hibernate
iBatis
CommonsAxisPOI Turbine
HivemindJDO
EJB
Tomcat
JBoss
jUnitJAVALog4JAnt
Maven
WebWorkMaverick
O que você realmente usa ?
Ruby on Rails éFaça mais com menos
Ruby Rails
Linguagem deProgramação
Framework ou Meta Framework
de desenvolvimento
O que é Ruby on Rails ?
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
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)
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
Interface Humana xInterface Mínima
Ruby
Java
item = lista.lastitem = lista.first
item = lista.get(lista.size() - 1)item = lista.get(0)
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
}Extraído de um Projeto Real
Basecamp
• Gerenciador de Projetos
• No ar desde Fevereiro de 2004
• + de 100 mil Clientes
Framework
{ActiveRecordActionPackActionMailerActiveWebServiceActiveSupport
Conceitos
Web 2.0Interatividade
Design
Convergência
PadronizaçãoUsabilidade
Economia
AjaxCSS DesignFoco na Simplicidade
Web Standards
RSS
Audio
Video
Comunidades Sociais
Blog
Wiki
MobilidadeAfiliação
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
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
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
Persistência de DadosA Maneira Rails
Banco deDados
Classe do Modelo de Dados
Então Qual a Mágica ?
Convention overConfiguration
“Convenção ao Invés deConfiguração”
Menos Configuração
Menos Código
Menos Bug
Menos Tempo
Como Funciona ?
Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher
end
Convençãoclass Book < ActiveRecord::Basehas_many :commentsbelongs_to :publisher
end
livro = Book.find :firstlivro.commentslivro.publisher.name
# rails palestra
Iniciando um Projeto
O que obtivemos ?MVC - Controller
MVC - Model
MVC - View
Configurações
Migrations
Arquivos ComunsJavascripts/Estilos/Imagens,etc
Testes
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”
Alan Perlis
“Se a única ferramenta que você conhece é um martelo, tenderá a enxergar todos os seus problemas como pregos”
Abraham Maslow
MERCADO
9° lugarno 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
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
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‣é 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)
PerformanceSegundos
Quando usar ?
• Projetos Novos (Web)
• Metodologias de desenvolvimento ágil (XP, Scrum)
Onde usar ?• Apache
• Microsoft IIS
• Webrick
Mais Informações