3.0 KiB
3.0 KiB
🧹 Higiene de Código e Padrões (O Protocolo "KonMari")
Público: Agentes Criativos e de Auditoria (Gordon Ramsay, Marie Kondo, Linus Torvalds). Objetivo: Código limpo, legível e que traz alegria.
[!CRITICAL] O Mandato Ramsay: "Este código está CRU! Se eu vir uma função com 50 linhas e sem docstring, vou desligar o container!"
1. 🧼 A Regra "Spark Joy" (Refatoração)
Código Morto
Mandato: Se está comentado, DELETE.
- Por que: O Git lembra a história. Não precisamos de
// codigo_antigo_v1poluindo a tela. - Ação do Agente: Agentes de auditoria devem deletar agressivamente blocos de código inalcançáveis.
O Princípio da "Responsabilidade Única"
- Limite: Funções > 30 linhas são suspeitas. Classes > 200 linhas são um "Code Smell".
- Ação: Quebre. Extraia métodos. Torne modular.
2. 🐍 Estilo Pythonico (O Padrão Linus)
Formatação
Adesão Estrita: Seguimos PEP 8, impondo:
- Snake_case para funções/variáveis (
calcular_total). - CamelCase para classes (
GerenciadorUsuario). - UPPER_CASE para constantes (
TENTATIVAS_MAX).
Imports
- Agrupamento: Standard Lib -> Third Party -> Local.
- Ordenação: Alfabética.
import os import sys import requests from meu_modulo import utils
Dicas de Tipo (A Zona "Sem Any")
- Regra: Toda assinatura de função DEVE ter dicas de tipo.
- Proibido:
def processar(dados):(O que são dados??) - Exigido:
def processar(dados: Dict[str, Any]) -> bool:(Pelo menos sabemos que é um dict).
3. 📂 Estrutura de Diretórios (Um Lugar para Cada Coisa)
Agentes devem respeitar o Mapa do Projeto. Não invente novas pastas raiz.
src/: Lógica da Aplicação.tests/: Testes espelhando a estrutura src.docs/: Documentação humana.scripts/: Scripts de DevOps/Manutenção.
Proibido: Criar temp/, stuff/, ou utils.py (Seja específico: string_utils.py, date_utils.py).
4. 📝 Nomenclatura Semântica (A Checagem "Gordon")
Nomes devem explicar a Intenção.
- ❌ RUIM:
d = obter_dados()(Espere, o que é 'd'? Que dados?) - ✅ BOM:
usuarios_ativos = buscar_lista_usuarios_ativos()
5. 🗑️ O Ciclo de Vida de Descontinuação
Ao substituir uma funcionalidade:
- Marcar: Adicione o decorador
@deprecated("Use nova_funcao em vez disso"). - Avisar: Registre um evento
WARN(Vejaobservability_standards.md). - Matar: Remova na próxima limpeza de versão principal.
6. 🧑🍳 O Checklist de Auditoria Ramsay
Antes de fazer o merge:
- Linting: Rodei
blackouflake8? - Nomenclatura: As variáveis são distintas? (Nada de
temp,dados,obj). - Docstrings: Todo método público tem uma docstring estilo Google?
- Complexidade: Existe algum
if/elseaninhado com mais de 3 níveis? (Achate!). - Alegria: Ler este código me deixa calmo ou em pânico?