Skip to content

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

  1. Nomenclatura:
  2. Use nomes descritivos e consistentes para variáveis, funções, classes e arquivos.
  3. Siga o padrão snake_case para nomes de variáveis e funções em Python e CamelCase para nomes de classes.

  4. Documentação:

  5. Documente todos os módulos, classes e funções com docstrings que seguem o padrão do PEP 257.
  6. Adicione comentários para esclarecer blocos de código complexos ou decisões importantes.

  7. Formatação:

  8. Utilize black como formatador de código para garantir a consistência.
  9. Limite o comprimento das linhas a 79 caracteres.
  10. Separe blocos lógicos de código com uma linha em branco.

  11. Tipagem:

  12. Utilize tipagem estática (type hints) conforme o PEP 484.
  13. Verifique o uso de tipagem com mypy.

Boas Práticas e Recomendações

  1. Modularização:
  2. Separe o código em módulos e pacotes de forma a manter as responsabilidades bem definidas.
  3. Reutilize código sempre que possível, evitando duplicação.

  4. Testes:

  5. Escreva testes unitários para novas funcionalidades e correções de bugs.
  6. Utilize pytest para automação dos testes.
  7. Busque alcançar uma cobertura de testes superior a 90%.

  8. Controle de Versão:

  9. Faça commits frequentes e com mensagens descritivas.
  10. Utilize branches para desenvolvimento de novas funcionalidades ou correção de bugs, seguindo o fluxo Git Flow.

  11. Automação:

  12. 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