Qual a melhor forma de estruturar e distribuir uma aplicação python 3, considerando os pacotes, testes, documentação, etc.. E qual a função do arquivo 'init.py'
Qual a melhor forma de estruturar e distribuir uma aplicação python 3, considerando os pacotes, testes, documentação, etc.. E qual a função do arquivo 'init.py'
Olá Marcus, tudo bem?
A forma que nosso projeto está estruturado é uma forma comum de se encontrar uma aplicação em Python. Pois, basta pegarmos a pasta src/
e colocá-la no servidor ou em um container do Docker para subir a aplicação.
Essa abordagem é interessante, pois em produção, não existe a necessidade do código de testes.
A parte de organização dos pacotes e documentação varia muito da cultura do time. Em alguns times é comum ter código comentados, em outros, temos diagramas UMLs, outros times utilizam o próprio código de testes como uma forma de documentação. Uma abordagem comum é deixar o código ser a documentação, mas ter um arquivo README.md
com informações sobre como rodar o projeto, onde buscar ajuda, ferramentas e tecnologias utilizadas, entre outros.
Sobre o arquivo __init__.py
, ele, é utilizado para inicializar um pacote Python, isto é, informar ao Python que aquele diretório é um pacote.
Além disso, ele pode ter outros usos como importar e carregar arquivos e módulos.
Legal Yuri, muito obrigado pela resposta. A dúvida surgiu quando precisei organizar um projeto pessoal e algumas fontes de pesquisa não utilizavam a pasta source (/src), mas sim uma pasta com mesmo nome do projeto. No entanto, acredito que utilizar a src seja sim uma boa prática e facilita para subir em produção.
Seguem algumas referências que pesquisei:
https://docs.python.org/3.7/tutorial/modules.html
https://docs.python-guide.org/writing/structure/
https://pt.stackoverflow.com/questions/214770/como-%C3%A9-a-estrutura-de-projetos-em-python
Agradeço mais uma vez!