Palestra ror edted

Post on 13-Jan-2015

702 views 0 download

description

Palestra sobre Ruby On Rails ministrada em 07/08/2010 no 15o EDTED que aconteceu em Belo Horizonte

Transcript of Palestra ror edted

Ruby on railsEDTED 2010

Bruno Andrade Alvesbruno@dito.com.br

• 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?

Obrigado!

Bruno Andrade bruno@dito.com.br

http://www.dito.com.br