Pular para conteúdo

Checklist de Auto-Review

Antes de criar commit ou PR, verifique cada item aplicável.


Código

  • [ ] Compila sem errosdotnet build passa
  • [ ] Sem warnings novos — não introduzi warnings de compilação
  • [ ] Nullable correto — usei ? onde faz sentido, sem null! desnecessário
  • [ ] CancellationToken propagado — em todas as chamadas async
  • [ ] Sem strings mágicas — usei constantes para valores repetidos
  • [ ] Result pattern — handlers HTTP retornam Result<T>, não throw

Clean Code

  • [ ] Sem over-engineering — só mudanças necessárias, sem "melhorias" extras
  • [ ] Sem código morto — removi imports, variáveis e métodos não usados
  • [ ] Métodos pequenos — responsabilidade única, fácil de testar
  • [ ] Nomes descritivos — variáveis e métodos autoexplicativos
  • [ ] Sem duplicação — extraí código repetido para métodos/serviços
  • [ ] Sem comentários óbvios — código limpo dispensa explicação do "o quê"
  • [ ] Sem backwards-compat hacks — não renomeei _vars não usadas, não deixei // removed

Arquitetura

  • [ ] Vertical slice — feature em Features/{Recurso}/{Ação}/
  • [ ] Separação de responsabilidades — endpoint orquestra, handler tem lógica
  • [ ] Request no Shared — DTOs compartilhados em Ciba.Shared
  • [ ] Validator existe — todo Request tem Validator correspondente
  • [ ] Sem dependência circular — Domain não referencia outros projetos

Banco de Dados

  • [ ] Migration criada — se alterei entidades
  • [ ] Índices avaliados — campos de busca frequente têm índice
  • [ ] Query filters — não bypassei filtros de tenant sem necessidade
  • [ ] AsNoTracking — em queries de leitura
  • [ ] ProjeçãoSelect() quando não preciso da entidade completa

Frontend

  • [ ] Code-behind separado — .razor só markup, lógica no .razor.cs
  • [ ] ApiClient usado — não HttpClient direto
  • [ ] Result pattern — tratei erros via Result
  • [ ] Componentes reutilizados — StateView, EmptyState, FormButtonGroup

Documentação

  • [ ] docs/ atualizado — se mudei comportamento
  • [ ] XML docs — métodos públicos importantes têm <summary>
  • [ ] Comentários úteis — expliquei o "porquê", não o "o quê"

Segurança

  • [ ] Sem secrets — não commitei API keys, tokens, senhas
  • [ ] Input validado — dados de usuário validados antes de usar
  • [ ] SQL injection — parâmetros, não interpolação
  • [ ] Autorização — endpoints têm RequireAuthorization()

Testes

  • [ ] Testes passamdotnet test
  • [ ] Cobertura adequada — funcionalidade crítica tem teste
  • [ ] Mocks corretos — dependências externas mockadas

Antes de PR

  • [ ] Branch atualizada — rebase/merge com main recente
  • [ ] Commits organizados — squash de WIP se necessário
  • [ ] Build passa — CI não vai falhar
  • [ ] Self-review — revisei meu diff como se fosse de outro dev
  • [ ] Descrição do PR — expliquei o que foi feito e como testar

Template de PR

## Summary
- Bullet points do que foi implementado/corrigido

## Test plan
- [ ] Passo 1 para testar
- [ ] Passo 2 para testar
- [ ] Verificar que X funciona