Fala pessoal, beleza? Hoje vou trazer algumas dicas sobre os passos que eu tomo na hora de organizar meus projetos. O que irei mostrar daqui pra frente não se trata de uma convenção da comunidade, nem de regras de nada, é simplesmente a forma como EU aprendi a me organizar a partir das experiências que venho tendo dentro da Cod3r. Vamos lá!
Arquivos
Na hora de nomear seus arquivos, as opções são bem variadas. Primeiro temos as questões dos “cases”. Quando vamos nomear um arquivo, não podemos colocar um espaço em branco no nome dele; logo, é uma boa prática você se utilizar de algum artifício para conseguir dar maior legibilidade para aquele nome de arquivo. Lembrando, não é algo necessário, mas é algo bem importante e que te dá uns pontos extras no seu código e projeto. Afinal, convenhamos: o que é mais fácil e rápido de ler → productgridscreen.dart ou product_grid_screen.dart ?
Vamos aos estilos que temos disponíveis para utilizar. O mais famoso de todos e talvez o mais utilizado de todos é o camelCase, nele a gente escreve tudo junto mas separa as palavras por letras maiúsculas iniciando cada uma delas, tirando a primeira. Alguns exemplos → camelCase.js ~ testeUnitario.java ~ productGridScreen.dart
Outro estilo é o PascalCase, que é quase igual ao Camel, porém já iniciamos ele com letra maiúscula também. Exemplos → PascalCase.js ~ TesteUnitario.java ~ ProductGridScreen.dart
Talvez o segundo mais famoso dos estilos seja o snake_case. Nele, separamos as palavras com o famoso underline, o sublinhado. Exemplos → snake_case.js ~ teste_unitario.java ~ product_grid_screen.dart
Por último temos o kebab-case onde separamos as palavras por hífen. Exemplos → kebab-case.js ~ teste-unitario.java ~ product-grid-screen.dart
Quanto à nomenclatura dos arquivos do projeto, o objetivo é ser o mais claro possível, porém de forma resumida. Não é muito legal nomear seus arquivos com quatro ou mais palavras; uma ou duas já devem ser suficientes, use (no máximo) três. Por último, os nomes devem ser totalmente ligados com o conteúdo que o arquivo vai ter.
Pastas
É bem comum que um projeto tenha diversas pastas, pois nenhum projeto tem todos os seus arquivos soltos na pasta-raiz dele. Com isso em mente, podemos organizar as pastas de maneira eficaz da seguinte forma: primeiro, é bom começar os nomes com letra maiúscula; por exemplo, Providers ~ Screens ~ Telas ~ Classes, e por aí vai. Em relação a utilizar inglês ou português na hora de nomear, bem, vai de acordo com sua preferência mesmo; acho super importante e válido utilizar o inglês, principalmente caso você vá postar o projeto no GitHub ou algo do tipo. Dessa forma, seu projeto ficará compreensível para toda a comunidade internacional.
Uma forma de organizar as pastas é separando seus arquivos por contexto. Todos os arquivos relativos á alguma tela do seu projeto, vão juntos para a pasta Screens ou Telas, os arquivos que são funções que serão reutilizadas dentro do projeto podem ir juntos para a pasta Functions ou Funções e assim por diante. Ou seja: cada pasta vai ser referente a um tipo de arquivo.
Outra forma eficaz de separar os arquivos nas pastas é pelo contexto, não dos arquivos, mas do contexto do projeto em si. Por exemplo, imagine um projeto que se trata de uma aplicação de loja online. Dentro desse tipo de projeto teremos diversos arquivos de diversos setores, como por exemplo, os arquivos de código que lidam com o pagamento, outros que lidam com o cadastro do cliente, outro que lide com os produtos da loja etc. Nesse caso, você pode criar pastas de acordo com esses setores e organizar os arquivos da forma que explico em seguida. Uma pasta para Vendas contendo todos os arquivos que envolvem o financeiro da aplicação. Outra pasta Clientes aonde os arquivos referentes aos clientes sejam guardados e por aí vai.
Nada impede que você combine esses dois modos. Ou seja, criar pastas maiores separando os arquivos por setor e dentro dessas pastas, novas pastas separando os arquivos pelo contexto mesmo.
Conclusão
Espero que alguma das dicas que passei sejam úteis de alguma forma pra vocês. Bons estudos galera!