Skip to content

Commit

Permalink
Merge pull request #92 from unb-mds/46-Mantenabilidade-e-Desenvolvimento
Browse files Browse the repository at this point in the history
Mantenabilidade e Desenvolvimento
  • Loading branch information
davi-aguiar-vieira authored Aug 22, 2024
2 parents 2518105 + f3482aa commit 4121eae
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions docs/Desenvolvimento.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@

# 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:**
- 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 e `CamelCase` para nomes de classes.

2. **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.

3. **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.

4. **Tipagem:**
- Utilize tipagem estática (`type hints`) conforme o PEP 484.
- Verifique o uso de tipagem com `mypy`.

### Boas Práticas e Recomendações

1. **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.

2. **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%.

3. **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.

4. **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

0 comments on commit 4121eae

Please sign in to comment.