-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #92 from unb-mds/46-Mantenabilidade-e-Desenvolvimento
Mantenabilidade e Desenvolvimento
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |