Checklist de Auto-Review¶
Antes de criar commit ou PR, verifique cada item aplicável.
Código¶
- [ ] Compila sem erros —
dotnet buildpassa - [ ] Sem warnings novos — não introduzi warnings de compilação
- [ ] Nullable correto — usei
?onde faz sentido, semnull!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
_varsnã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ção —
Select()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 passam —
dotnet 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