DEV Community

Rafael Silva
Rafael Silva

Posted on

Um pouco sobre Estrutura de Pastas em Ruby on Rails

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
Enter fullscreen mode Exit fullscreen mode

Pastas

O comando irá gerar toda uma estrutura para o projeto que deverá se parecer com isso:

Imagem mostrando as pastas geradas pelo Rails em um novo projeto

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

Imagem mostrando as subpastas do diretório _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

Imagem mostrando as subpastas do diretó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

Imagem mostrando as subpastas do diretório _db_

Aqui podem conter scripts que gerenciam o banco de dados.

lib

Imagem mostrando as subpastas do diretório _lib_

Aqui como o nome já diz libraries ficam as bibliotecas, a menos que elas já pertençam a outro lugar.

log

Imagem mostrando as subpastas do diretório _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

Imagem mostrando as subpastas do diretório _public_

Aqui ficam os arquivos que estam com acesso público, como imagens, páginas estáticas, etc.

test

Imagem mostrando as subpastas do diretório _test_

Aqui ficam os testes que você cria e que o Rails cria para você, como testes funcionais, unit tests, etc.

tmp

Imagem mostrando as subpastas do diretório _tmp_

Aqui o nome já é autossugestivo, nessa pasta ficam os arquivos temporários.

vendor

Imagem mostrando as subpastas do diretório _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)

Collapse
 
erick_tmr profile image
Erick Takeshi

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

Collapse
 
tr11 profile image
Tiago Rangel

Ótimo artigo, muito obrigado!

Collapse
 
rsmwall profile image
Rafael Silva

Eu quem agradeço