Organize sua aplicação Rails
Rails é um framework MVC e ao criar uma nova aplicação, os diretórios models, views e controllers são criados automaticamente. Será que precisamos apenas destes diretórios?
Eu acredito que não.
Pelo fato do framework, de certa forma guiar o nosso desenvolvimento, na maioria das vezes seguimos o padrão proposto e nos esquecemos de que podemos modificar algumas coisas.
Trabalhando em consultorias, tenho a oportunidade de “colocar a mão” em muitos projetos. Em grande parte deles, o código escrito parecia ter sido obrigado a se “encaixar” em um dos 3 diretórios citados acima.
A questão é: nem tudo na sua aplicação é um model, um controller ou uma view. Logo não faz sentido inserir seu código lá.
Na aplicação que trabalho atualmente tenho a seguinte estrutura dentro do diretório app:
- adapters
- assets
- controllers
- helpers
- mailers
- models
- observers
- presenters
- uploaders
- validators
- views
- workers
Não tenha receio de acrescentar outros diretórios em sua aplicacão achando que você está saindo do padrão. A nova onda na comunidade é falar sobre SOLID e seguindo alguns destes princípios ajudará na organização.
Uma outra prática que costumo seguir em aplicações quem possuem um grande número de models por exemplo, é separá-los em subdiretórios dentro de app/models. Não preciso criar namespaces para isso. Basta acrescentar o novo diretório no load path da aplicação.
Se a sua aplicação possui vários domínios, faz sentido organizar desta forma.
5 Comentários »
Feed RSS dos comentários deste post URL de TrackBack

Não curto muito organizar o projeto por “design patterns” nas pastas. Gosto da ideia do java, eu costumo separar pro domain já na app.
app/billing
app/reports
app/sitemap
etc.
Comentário por Vinicius B. Fuentes — 21 de novembro de 2011 @ 14:20
Dependendo da quantidade de domínios eu também faço isso. E dependendo do tamanho do domínio eu faço por exemplo: app/billing/adapters
Comentário por Rinaldi Fonseca — 21 de novembro de 2011 @ 15:29
app/modes? não é app/models?
Comentário por agaelebe — 26 de dezembro de 2011 @ 23:15
Valeu Hugo! Corrigido!
Comentário por Rinaldi Fonseca — 26 de dezembro de 2011 @ 23:19
Parabéns meu, um post melhor que o outro,
animal!
Comentário por Vinícius — 6 de março de 2012 @ 16:56