1. Ruby on rails
EDTED 2010
Bruno Andrade Alves
bruno@dito.com.br
2. Apresentação
• Bacharel em ciência da computação na
PUCMINAS
• Sócio-fundador da Dito Internet
• Empresa fundada há 3 anos sendo todos os
seus projetos desenvolvidos em ruby on
rails
• Professor da Pós-Graduação
“Desenvolvimento de Sistemas para web”
3. Cases
• 1 milhão de visitantes
únicos e 22 milhões de
pageviews por mês
• 800.000 usuários
cadastrados
• Mais de 8 milhões de
apostas realizadas
4. Cases
• Mais de 940.000
usuários cadastrados
em menos de 3 meses
• Elevado número de
requisições
simultâneas
6. Ruby
• Linguagem de programação lançada ao
público em 1995.
• Popularizou-se em 2006, depois do
surgimento do Ruby on Rails.
• Ruby é totalmente gratuita. Para usar,
copiar, modificar e distribuir
7. Ruby
• Foco na simplicidade e produtividade
• Influências: Perl, Smalltalk, Eiffel, Ada e Lisp
• Não necessita compilação
• Orientada a objetos, tudo é um objeto
• Flexibilidade
16. O que é o Rails?
“Um monte de coisas que
fazem os desenvolvedores
web felizes”
David Heinemeier Hansson
17. O que é o Rails?
“Um monte de coisas que fazem os
desenvolvedores web
felizes”
David Heinemeier Hansson
18. O que é o Rails?
Um framework para desenvolvimento web
19. Rails
• “Tornar o desenvolvimento web mais
rápido, simples e mais eficiente.”
• Lançado em julho de 2004.
• Extraída da ferramenta para gestão de
projetos Basecamp.
26. “As pessoas preferem
muito mais escolhas do
que terem que escolher”
David Heinemeier Hansson, RailsConf’08
27. Convention over
Configuration
• Usamos convenções para facilitar o
entendimento e manutenção
• Rails sugere assumir valores padrão onde
existe uma convenção.
• Se o desenvolvedor quiser, pode-se
sobrescrever essa convenção com o valor
30. Model-View-Controller
(MVC)
• Model: Contém as regras de negócio e faz o controle
da persistência dos dados
• View: Responsável por gerar a interface com o usuário
• Controller: Recebem eventos do mundo externo,
interagem com o model e disponibilizam a view
correta para o usuário
33. ActiveRecord
• Camada de mapeamento objeto-relacional,
responsável pela tradução do banco de
dados relacional em objetos. Ex:
Cliente.find_by_nome(“Bruno”)
SELECT * FROM “clientes”
WHERE (“clientes”.“nome” = ‘Bruno’)
LIMIT 1
34. Migrations
• Modo conveniente para alterar a base de
dados de um modo estruturado e
organizado
• Mantém o controle das alterações feitas
• Todos os desenvolvedores possuem a
mesma estrutra da base
40. Behaviour driven
development (BDD)
• Implementa os testes unitários
considerando um comportamento
Ex.: Describe Teacher do
It “should have a good knowledge”
(...)
end
41. Testes
• Rails já possui uma estrutura para o
desenvolvimento de testes automatizados
(TDD).
• O Rspec é um framework para o BDD