Mantenabilidade e Desenvolvimento
Esta página fornece diretrizes de codificação e uma visão geral da estrutura do repositório para garantir a qualidade, a consistência e a mantenabilidade do código ao longo do desenvolvimento do projeto.
Diretrizes de Codificação
Padrões de Estilo e Convenções
- Nomenclatura:
- Use nomes descritivos e consistentes para variáveis, funções, classes e arquivos.
-
Siga o padrão
snake_case
para nomes de variáveis e funções em Python eCamelCase
para nomes de classes. -
Documentação:
- Documente todos os módulos, classes e funções com docstrings que seguem o padrão do PEP 257.
-
Adicione comentários para esclarecer blocos de código complexos ou decisões importantes.
-
Formatação:
- Utilize
black
como formatador de código para garantir a consistência. - Limite o comprimento das linhas a 79 caracteres.
-
Separe blocos lógicos de código com uma linha em branco.
-
Tipagem:
- Utilize tipagem estática (
type hints
) conforme o PEP 484. - Verifique o uso de tipagem com
mypy
.
Boas Práticas e Recomendações
- Modularização:
- Separe o código em módulos e pacotes de forma a manter as responsabilidades bem definidas.
-
Reutilize código sempre que possível, evitando duplicação.
-
Testes:
- Escreva testes unitários para novas funcionalidades e correções de bugs.
- Utilize
pytest
para automação dos testes. -
Busque alcançar uma cobertura de testes superior a 90%.
-
Controle de Versão:
- Faça commits frequentes e com mensagens descritivas.
-
Utilize branches para desenvolvimento de novas funcionalidades ou correção de bugs, seguindo o fluxo Git Flow.
-
Automação:
- Utilize GitHub Actions para automatizar tarefas de CI/CD, incluindo testes e verificação de qualidade de código.
Estrutura do Repositório
Descrição da Estrutura de Pastas e Arquivos
O repositório é organizado da seguinte maneira:
```plaintext project-root/ │ ├── data/ # Armazena arquivos de dados brutos e processados │ ├── raw/ # Dados brutos coletados diretamente das fontes │ └── processed/ # Dados já manipulados e prontos para análise │ ├── scripts/ # Scripts Python para coleta e processamento de dados │ ├── collect.py # Script principal de coleta de dados │ ├── process.py # Script principal de processamento de dados │ └── utils.py # Funções auxiliares usadas nos scripts principais │ ├── analysis/ # Notebooks Jupyter e scripts para análise de dados │ ├── analysis.ipynb # Notebook principal para análise exploratória │ └── visualization.py # Script para geração de gráficos e visualizações │ ├── docs/ # Documentação do projeto │ └── index.md # Página inicial da documentação │ ├── .github/ # Configurações para GitHub Actions e templates de issues │ ├── workflows/ # Fluxos de trabalho para CI/CD │ └── ISSUE_TEMPLATE/ # Modelos para criação de issues │ ├── tests/ # Testes unitários e de integração │ ├── test_collect.py # Testes para o script de coleta de dados │ └── test_process.py # Testes para o script de processamento de dados │ ├── requirements.txt # Lista de dependências do projeto └── README.md # Descrição geral do projeto