palestra ror edted
DESCRIPTION
Palestra sobre Ruby On Rails ministrada em 07/08/2010 no 15o EDTED que aconteceu em Belo HorizonteTRANSCRIPT
Ruby on railsEDTED 2010
Bruno Andrade [email protected]
• 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”
Apresentação
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
Cases
• Mais de 940.000 usuários cadastrados em menos de 3 meses
• Elevado número de requisições simultâneas
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
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
Ruby foi feito para deixar os programadores felizes!
O início
Porque não reaproveitar o código?
Porque compartilhar?
“Por razões puramente egoístas” DHH
Porque compartilhar?
• Deixar que os outros façam o trabalho
• Ganhar reputação por ser um doador
O que é o Rails?
“Um monte de coisas que fazem os desenvolvedores
web felizes”
David Heinemeier Hansson
O que é o Rails?
“Um monte de coisas que fazem os desenvolvedores web
felizes”
David Heinemeier Hansson
O que é o Rails?
Um framework para desenvolvimento web
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.
Aprendendo Rails
Java X Rails
Scaffold
Propostas do Rails
Don’t Repeat Yourself (DRY)
“As pessoas preferem muito mais escolhas do
que terem que escolher”
David Heinemeier Hansson, RailsConf’08
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
Model-View-Controller (MVC)
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
Model-View-Controller (MVC)
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
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
Scaffold
Gerador de código Create Read Update Delete (CRUD)
Scaffold
Gerador de código Create Read Update Delete (CRUD)
Console
Interação direta com a aplicação para experimentos e testes
Test Driven Development (TDD)
• Desenvolvimento orientado a testes
• Teste antes do código
Behaviour driven development (BDD)
• Implementa os testes unitários considerando um comportamento
Ex.: Describe Teacher do It “should have a good knowledge”(...)
end
Testes
• Rails já possui uma estrutura para o desenvolvimento de testes automatizados (TDD).
• O Rspec é um framework para o BDD
Partes comuns dos sistemas
• Autenticação
• Paginação
• TagCloud
Plugins
• Fácil extensão do código
• Agilidade
• Melhoramento contínuo
Deploy
• Capistrano é utilizado para automatizar o deploy
• Executa todas as etapas do deploy
Cases
Quer começar?
rubyonrails.org
railscasts.com
Dúvidas?