DEV Community

Cover image for Como eu deveria estruturar as pastas de um projeto de software?
O Primo Dev
O Primo Dev

Posted on

Como eu deveria estruturar as pastas de um projeto de software?

Bom, 26/12, e provavelmente você não está interessado em código.

Mas hoje, fiz uma piada sobre a estrutura de pastas/arquivos, e houve quem não entendeu a referência. Então, decidi soltar uma opinião disfarçada de regra, especialmente para VOCÊ que tem dúvidas sobre como organizar projetos de software.

✨ TL;DR (nao li e nao lerei em PT-BR)

revire o GitHub de projetos famosos (tem muito no OpenSource), pra entender como devs experientes organizam o código.

Como poderia ser resolvido?

Tudo o que penso resume-se à prática e experimentação, simplesmente porque, a menos que você esteja trabalhando com um framework altamente opinativo, dificilmente essa estrutura reflete no desempenho do seu aplicativo, mas sim na experiência de desenvolvimento ou, para falar bonito, DX.

As pessoas que mais têm essa dúvida são aquelas com pouca experiência prática no mundo real do desenvolvimento de software, e não estou dizendo isso por preconceito; é compreensível. E pensando nisso, por que não atacar a raiz do problema? A experiência.

Sempre que estou em uma conversa com algum desenvolvedor e esse assunto surge, tento esclarecer que na verdade não importa tanto o nome ou a estrutura que EU uso para organizar meus projetos, mas sim o quão compreensível isso é para a minha equipe.

Afinal, usar a mesma estrutura que o @dan_abramov nos projetos não significa que ele esteja perfeito agora. E não é nada contra o Dan, mas sim contra seguir cegamente receitas de bolo sem ao menos entender o que cada coisa faz.

Ainda não entendi Primo.

Vou resumir porque isso aqui vai virar o velho testamento se deixar: seu problema não é saber a estrutura ideal de pastas para o seu projeto, e sim a falta de experiência real. Então, proponho um exercício: quer entender como os profissionais de renome organizam seus projetos?

Vou resumir para não virar o velho testamento: seu problema não é saber a estrutura ideal de pastas para o seu projeto, e sim a falta de experiência real. Então, proponho um exercício: quer entender como os profissionais de renome organizam seus projetos? REVIRE O GIT DELES!!!

Olhe como o Erick Wendel, o Soutinho, o Regazio, o Cu & Codigo, o Akita e tantos outros organizam os próprios projetos, e você vai observar padrões em comum.

Alguns desses padrões podem ser considerados convenções, ou seja, um conjunto de regras definido pela própria comunidade de software, que não afeta o funcionamento do software em si. Muitos desses padrões também são influenciados por design patterns e afins, mas lembre-se:

Eles não necessariamente alteram o funcionamento do código, mas simplificam a sua compreensão para o seu "eu" do futuro que vai ler esse código e, como já foi dito anteriormente, para o seu time que vai precisar dar manutenção nesse "quiabo" que você deu push direto na main.

PS.: só a titulo de exemplo, vou deixar uns repos de projetos em ReactNative aqui, pq foi o que originou esse post, mas isso vale pra qualquer linguagem/framework ok?

https://github.com/showtime-xyz/showtime-frontend/tree/staging

https://github.com/Expensify/App

https://github.com/vanGalilea/react-native-testing

https://github.com/obytes/react-native-template-obytes

https://github.com/bluesky-social/social-app


🎄✨ Se você chegou até aqui, feliz festas e um 2024 de muita oportunidade e conhecimento e se precisar falar comigo, é só me procurar escolhendo um dos meus métodos de contato

Photo by Clément Hélardot on Unsplash

Top comments (2)

Collapse
 
natanb4 profile image
Natã Barbosa

legal!

Collapse
 
raulferreirasilva profile image
Raul Ferreira

Valeu primo, nunca tive essa curiosidade ao certo, mas não etendi o meme direito KKKKKKK, vou dar uma devorada nos links pra aprender e entender melhor do assunto 🦤.