Ceará On Rails 2009 - Vou Participar Art Of Community

Comentário: (1)

Create, update, destroy e index não são obrigatórios!

Categoria : Dicas e Tutoriais, Rails, Ruby

Olá, mas que titulo é esse? O que quer dizer isso!?

Eu acompanho e muito a comunidade RubyOnRails brasileira, e tenho notado um comportamento que vem tomando conta principalmente nos novatos, que é o de querer a obrigatoriedade dos métodos index, create, update e destroy.

Como todos sabemos, temos que adicionar, remover e atualizar nossos dados, em alguns casos específicos listar todos os dados, mas isso não é obrigatório, bem como o nome desses métodos não são obrigatórios!

Ao invés de utilizar o método index para listar, posso utilizar o método show_all para mostrar todos algo como users/show_all.

Eu acho que esse comportamento está derivando do mal uso do scaffold. Para quem ainda não entendeu, scaffold é para gerar uma estrutura INICIAL para seus clientes alimentarem os dados de seus sistemas. Não é para ser usado como a roda que gira o mundo ou como “The golden bullet”. O scaffold deve ser usado em casos especificos, geralmente usados no inicio do desenvolvimento em apoio para os desenvolvedores lidarem com dados reais da aplicação ou quando a demanda de dados do cliente não pode parar.

Não usem scaffold para se gabar a seus amigos:

“Duas linhas de código e já estava pronto” ou “Que ver eu fazer um blog em 15 minutos?!”

Usem com consciência:

“Maria, aqui está o formulário inicial para entrada dos dados relativo a nova categoria de imóveis, até o final do dia de amanhã eu irei te mostrar como a tela realmente irá funcionar, enquanto não fica finalizado, você já pode começar a trabalhar”.

Comentários (1)

Cairo o Rails traz uma implementação para o padrão REST que utiliza esses métodos para o CRUD. É um “padrão” do Rails, que funciona muito bem por sinal. Nesse caso o interessante é tentar seguir ao máximo esse padrão.
A questão do scaffold é que muitas vezes você não precisa de todos eles.

Muitos recomendam que se um controller tiver muitos métodos fora desse padrão está na hora de uma refatoração no código ou no design (ou em ambos).

Rails é um framework opinado, segue fortemente as opiniões do core team sobre desenvolvimento web. O próprio DHH recomenda que você escolha outro framework caso não concorde com muitas dessas opiniões. O Merb surgiu justamente por causa dessas opiniões fortes, ele é parecido com Rails no entanto menos opinado.

Poste um comentário