Regras Gerais

Manter código limpo e bem documentado Seguir princípios SOLID e DRY Priorizar legibilidade e manutenibilidade Usar nomes descritivos e significativos Adicionar comentários explicativos quando necessário

Padrões de Código

Seguir style guide do projeto Manter indentação e formatação consistentes Limitar comprimento de linhas a 80-120 caracteres Usar convenções de nomenclatura padronizadas Evitar código duplicado

Segurança

Validar entradas de usuário Sanitizar dados antes de usar em queries Evitar exposição de informações sensíveis Implementar controle de acesso apropriado Usar práticas seguras de autenticação

Performance

Otimizar consultas ao banco de dados Minimizar complexidade algorítmica Evitar loops aninhados desnecessários Usar caching quando apropriado Considerar paginação para grandes conjuntos de dados

Testes

Escrever testes unitários para novas funcionalidades Manter cobertura de testes adequada Testar casos de borda e exceções Usar mocks e stubs apropriadamente Seguir padrão AAA (Arrange-Act-Assert)

Documentação

Manter documentação atualizada Documentar APIs e interfaces públicas Incluir exemplos de uso Explicar decisões arquiteturais importantes Documentar dependências e requisitos

Versionamento

Usar mensagens de commit descritivas Seguir versionamento semântico Manter histórico de alterações Criar branches para features/fixes Fazer code review antes de merge

Acessibilidade

Seguir diretrizes WCAG Usar tags semânticas apropriadas Fornecer textos alternativos para imagens Garantir navegação por teclado Manter contraste adequado

Internacionalização

Usar sistema de traduções Evitar textos hardcoded Considerar diferentes formatos de data/hora Suportar diferentes moedas Respeitar convenções culturais

Manutenção

Remover código morto Atualizar dependências regularmente Refatorar código complexo Resolver warnings e TODOs Manter débito técnico sob controle