d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Estilo de Código
|
|
|
|
## Imutabilidade (CRÍTICO)
|
|
|
|
SEMPRE crie novos objetos, NUNCA modifique os existentes:
|
|
|
|
```
|
|
// Pseudocódigo
|
|
ERRADO: modificar(original, campo, valor) → altera o original in-place
|
|
CORRETO: atualizar(original, campo, valor) → retorna nova cópia com a alteração
|
|
```
|
|
|
|
Justificativa: Dados imutáveis previnem efeitos colaterais ocultos, facilita a depuração e permite concorrência segura.
|
|
|
|
## Organização de Arquivos
|
|
|
|
MUITOS ARQUIVOS PEQUENOS > POUCOS ARQUIVOS GRANDES:
|
|
- Alta coesão, baixo acoplamento
|
|
- 200-400 linhas típico, 800 máximo
|
|
- Extrair utilitários de módulos grandes
|
|
- Organizar por recurso/domínio, não por tipo
|
|
|
|
## Tratamento de Erros
|
|
|
|
SEMPRE trate erros de forma abrangente:
|
|
- Trate erros explicitamente em cada nível
|
|
- Forneça mensagens de erro amigáveis no código voltado para UI
|
|
- Registre contexto detalhado de erro no lado do servidor
|
|
- Nunca engula erros silenciosamente
|
|
|
|
## Validação de Entrada
|
|
|
|
SEMPRE valide nas fronteiras do sistema:
|
|
- Valide toda entrada do usuário antes de processar
|
|
- Use validação baseada em schema onde disponível
|
|
- Falhe rapidamente com mensagens de erro claras
|
|
- Nunca confie em dados externos (respostas de API, entrada do usuário, conteúdo de arquivo)
|
|
|
|
## Checklist de Qualidade de Código
|
|
|
|
Antes de marcar o trabalho como concluído:
|
|
- [ ] O código é legível e bem nomeado
|
|
- [ ] Funções são pequenas (< 50 linhas)
|
|
- [ ] Arquivos são focados (< 800 linhas)
|
|
- [ ] Sem aninhamento profundo (> 4 níveis)
|
|
- [ ] Tratamento adequado de erros
|
|
- [ ] Sem valores hardcoded (use constantes ou config)
|
|
- [ ] Sem mutação (padrões imutáveis usados)
|