Início > ruby on rails, Uncategorized > Boas Praticas Ruby on Rails

Boas Praticas Ruby on Rails

Fala galera hoje vou abordar um assunto bastante interessante simples porem eficiente ;)
Seu você usa o scaffold por padrão o seu método index no controller vem mais ou menos assim

def index
 @produtos = Produto.find(:all)
end

em SQL isso significa ( SELECT * FROM PRODUTOS )
Um comando muito poderoso.
Agora pensamos assim essa classe produtos tem muitos detalhes (id,nome,categoria,codigo,codigo_fabricante,custo,referencia,codigo_barra,,, )
e que você tem muitos produtos,Pense no seu SELECT trazendo tudo isso em uma pancado só, Meus Deus…
Primeiro o usuário não vai e não tem o poder de ver todos os produtos ao mesmo tempo, ai começamos a usar nossas boas praticas,
uma delas seria criar uma busca pelos produtos filtrando por nome ou por categoria isso ja evitaria uma super consulta SQL,
outra seria uma paginação o Rails tem um gem chamado will_paginate fantástico e muito simples, e com essas duas opções ainda no podemos usar mais uma boa pratica que seria selecionar somente as colunas necessárias algo tipo

def index
 @produtos = Produto.all(:select => 'id,nome,referencia,codigo_barra')
end

Em SQL seria algo com ( SELECT id,nome,referencia,codigo_barra FROM PRODUTOS )

Polpamos consultas desnecessária pode ter certeza que você já ganhou uns ms a mais
Isso tudo são detalhes mas pode ter certeza que vão fazer muita diferença no desempenho do seu projeto.
Fica ai dica um abraco ate a próxima e pratique essas ideia .
>>> DRY>>>

  1. setembro 27, 2010 às 10:12 pm | #1

    Legal, isso ajuda bastante, evitando trazer tudo do banco de dados.

    Ótimo Tópico :D

  2. setembro 30, 2010 às 4:41 pm | #2

    É verdade, quando temos uma tabela grande isso faz muito diferença.

  3. outubro 28, 2010 às 11:56 pm | #4

    Legal a dica.
    Pra evitar de ficar fazendo isso na mão, você pode usar o http://github.com/sdsykes/slim_scrooge

    Ele faz isso de forma “automática”.
    Continue com os posts !

  1. janeiro 2, 2011 às 5:53 pm | #1

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.