Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida sobre organização de projetos

Olá. Desenvolvi um projeto exemplo baseado no que foi apresentado no curso com FastApi, fazendo acesso a um banco de dados mysql e implementando proteção com validação de token jwt. A minha dúvida é em relação a organização dos diretórios do projeto. Segue o exemplo de como ficou a estrutura:

├── __pycache__
├── app
├── requirements.txt
├── test
└── venv

Dentro do diretório app estão os packages e classes do projeto

├── __init__.py
├── __pycache__
│   ├── __init__.cpython-313.pyc
│   └── main.cpython-313.pyc
├── db
│   ├── __init__.py
│   ├── __pycache__
│   ├── configuration.py
│   └── database.py
├── depends
│   ├── __init__.py
│   ├── __pycache__
│   └── depends_auth.py
├── main.py
├── models
│   ├── __init__.py
│   ├── __pycache__
│   └── models.py
├── routers
│   ├── __init__.py
│   ├── __pycache__
│   ├── routers_login.py
│   ├── routers_posts.py
│   └── routers_user.py
└── schemas
    ├── __pycache__
    ├── post_schema.py
    └── user_schema.py

O projeto está no github https://github.com/raphapfeifer/fastapi-mysql

4 respostas
solução!

Olá Rapahel, espero que esteja bem

mas não entenda como errou ou algo do tipo! Estou vendo aqui a estrutura do projeto, parabéns ficou bem legal!

Eu tenho algumas considerações, mas não quer dizer que está errado

Estrutura em geral

Dependendo do projeto em si e da empresa onde trabalho, se seguem algum tipo de arquitetura limpa ou algo assim, a estrutura de pastas pode mudar um pouco, separando o projeto em Domain, ports e adapters.

  • Arquivo main

Nesse projeto você coloca o arquivo main dentro do app, que é comum em muitos casos, contudo outras possibilidades seriam chamar esse arquivo main.py de :


__main__.py

Essa notação faz com que você possa executar diretamente o app como um pacote no lugar de ter que chamá-lo

Arquivo de configuração

Outro ponto interessante que notei é que no seu repositório você não tem um config e está lendo as variáveis de ambiente de dentro de alguns arquivos. Uma boa prática é ter uma arquivo de configuração que lê todas as variáveis e depois então chama esse arquivo dos demais

Conclusão

No demais, a estrutura está muito boa! É sempre legal pensar nisso desde cedo, mas uma dica é olhar outros projetos (Até mesmo de outros frameworks como flask ou projetos em fastAPI) para verificar as estruturas. Vale pensar que de acordo com o proojeto isso pode mudar.

Mas você está no caminho certo!

Espero ter ajudado !!!

Olá Breno. Obrigado pelas dicas. A minha intenção é essa, quero procurar sempre evoluir e feedbacks como o seu são muito importantes.

fico feliz que tenha gostado!

se achar que foi valido a dica, fique a vontade para marcar uma das minhas mensagens como resolução do tópico!

Ah sim, vou marcar. Foi mal kkk. Mais uma vez obrigado!