se eu ativar os avisos e avisos nesses sites de produção ao vivo, eles ficarão sobrecarregados.
Você sempre deve ter avisos ativados no nível mais alto em desenvolvimento, teste e controle de qualidade, mas não em produção. Na verdade, se é um aplicativo de dogfood, ou seja, um aplicativo que você usa, também deve ativá-los na produção.
Basicamente: ative-os nos casos em que a pessoa que os vê está em posição de fazer algo sobre eles (o desenvolvedor no desenvolvimento e nos testes pode corrigi-los, o testador no controle de qualidade pode registrar um erro e, se o desenvolvedor estiver também o usuário, ele também pode consertá-lo na produção), mas não ative-o quando a pessoa que vê não puder fazer nada sobre ele (um usuário em produção, que nem sabe programar).
Idealmente, você também deve ativar o tratamento de avisos como erros, mas isso só funciona se não houver nenhum ;-) Mas lembre-se disso como um objetivo! Se for possível ativar / desativar isso por arquivo, ative-o para todos os novos arquivos e ative-o para todos os arquivos sem aviso e nunca desligue-o novamente depois de ligado.
Então, o que fazer com a sobrecarga?
Você faz uma lista de todos os avisos e avisos e segue as seguintes regras:
- Nunca, em nenhuma circunstância, adicione um novo aviso à lista. Todo novo trecho de código, toda edição, toda alteração, todo patch, todo commit não deve introduzir novos avisos, ele só pode ser corrigido los.
- Sempre que você tocar em um pedaço de código, corrija todos e quaisquer avisos nesse pedaço de código. (A regra do escoteiro: sempre deixe o acampamento em melhores condições do que você o encontrou.) Dessa forma, o código não importante pode ficar cheio de avisos, mas o código importante fica mais limpo com o tempo. "Parte do código" pode ser uma função, uma classe, um arquivo. Você também pode relaxar essa regra para corrigir pelo menos um aviso. O ponto é: conserte-os como você os encontra.
Nota: ambos requerem que você tenha algum tipo de banco de dados de log e mecanismo de filtragem de log em vigor. Observe também que "banco de dados de log" e "mecanismo de filtragem de log" podem ser apenas um arquivo de texto e grep
.
Esta é a parte importante. Sem o banco de dados, você não saberá quando adicionar um novo aviso e, sem a filtragem, ainda terá o problema de sobrecarga.
Nota 2: isso não funciona apenas para avisos, mas também para verificadores de estilo, métricas de complexidade, cobertura de código, ferramentas de análise estática e assim por diante. Basicamente:
- Não adicione novos problemas.
- Corrija os problemas antigos enquanto os tropeça.
Isso permite que você priorize com facilidade: o código que é editado com frequência e, portanto, precisa ser fácil de ler e manter, ficará melhor com o tempo. Código que não é tocado frequentemente, não vai melhorar, mas tudo bem, porque ninguém precisa olhar para ele de qualquer maneira. E , pelo menos, não vai piorar.
Obviamente, nada impede você de alocar tempo especificamente para não fazer nada além de caçar e matar avisos. Frequentemente, isso não é economicamente viável, e é seu trabalho como engenheiro manter isso em mente. "Um engenheiro é aquele que pode construir com um dólar, o que qualquer tolo pode construir com dois."
@
.