Quando começamos a utilizar uma ferramenta, seja ela uma linguagem, framework ou um photoshop da vida (sim, isso saiu um pouco do exemplo de programação), e pegamos uma certa rotina com o uso, passamos a criar um tipo de memória muscular, onde, não importa onde estejamos, se em um computador pessoal, de um amigo ou do trabalho, conseguiremos manipular da mesma forma.
E isso é algo que podemos ter por aqui, pense comigo, você desenvolve aquele sistema perfeito que está te dando o maior orgulho e você conhece um amigo que também sabe a mesma ferramenta, ele acha uma falha e você está ocupado para corrigir, com uma mesma estrutura, ele vai saber onde está cada arquivo e pode ajudar. Da mesma forma qualquer projeto que chegue em suas mãos, tendo a mesma estrutura irá facilitar bastante um manuseio e manutenção.
E podemos dizer tudo isso de Rails, afinal com um simples comando ele faz o favor de nos entregar toda essa estrutura pronta para usar, sem dor de cabeça.
Gerando
Para o nosso exemplo vamos criar um projeto chamado appexemplo.
rails new appexemplo
Pastas
O comando irá gerar toda uma estrutura para o projeto que deverá se parecer com isso:
Dentro dessas pastas podemos organizar o projeto de forma que outra pessoa que trabalhe com Rails não vai precisar perguntar como o prejeto foi organizado.
Dentro de algumas dessas pastas existem subdivisões e vamos ver algumas delas agora.
app
Aqui ficam os componentes da sua aplicação, é aqui também que estão as pastas de view, controllers, models da Arquitetura MVC
- app/controllers = é onde o Rails vai buscar as classes controller que tratam das requisiçoes web do usuário.
- app/helpers = é onde ficam as classes auxiliares para as classes model, view e controller, para que estes possam ficar menores e mais organizados.
- app/models = é onde ficam as classes que modelam os dados armazenados no banco de dados.
- app/views = é onde ficam os modelos de exibição, layouts para preencher com os dados da aplicação, converter para HTML e exibir para o usuário.
config
Aqui ficam os arquivos de configuração do projeto.
config/environments = aqui ficam os arquivos de configuração dos 3 ambientes que o Rails possui: development, test e production.
config/initializers = aqui ficam todos os arquivos que são executados quando a aplicação é iniciada.
db
Aqui podem conter scripts que gerenciam o banco de dados.
lib
Aqui como o nome já diz libraries ficam as bibliotecas, a menos que elas já pertençam a outro lugar.
log
Aqui é onde o Rails vai criar os logs de erro, ele cria logs para o servidor (server.log) e cada ambiente Rails (development.log, test.log e production.log).
public
Aqui ficam os arquivos que estam com acesso público, como imagens, páginas estáticas, etc.
test
Aqui ficam os testes que você cria e que o Rails cria para você, como testes funcionais, unit tests, etc.
tmp
Aqui o nome já é autossugestivo, nessa pasta ficam os arquivos temporários.
vendor
Aqui ficam os diretórios de terceiros, como diretórios de segurança ou utilitários do banco de dados.
Conclusão
Desde a criação de um projeto em Rails, já temos uma estrutura completa e organizada que além de deixar o projeto mais bonito, evita dores de cabeça futuras, principalmente levando em conta as manutenções do nosso software, sem falar que coisas assim mais organizadas e bem feitas dão um "ar de profissionalidade" e você pode impressionar outras pessoas com isso (recomendo que sejam também alguém da área, caso contrário pode surtir um efeito contrário)
Se você gostou desse artigo, me segue no Twitter, no Github e aqui, o user é o mesmo: @rsmwall.
Top comments (3)
Convention over configuration, a filosofia simples que guia quase tudo do Rails.
é aquele exemplo de algo que quem gosta ama e quem não gosta odeia
Ótimo artigo, muito obrigado!
Eu quem agradeço