O Portão Disparou 198 Vezes. Eu Chamei Isso de "Funcionando".

Eu construí um portão para bloquear código ruim. Ele bloqueou 198 trechos de código. Achei que isso significava que o portão estava funcionando bem. Vi uma contagem alta de bloqueios e me senti bem-sucedido.

Então, analisei os casos reais. Percebi que muitos daqueles bloqueios eram erros. O portão estava rejeitando código bom. Ele rejeitava trabalhos que atendiam a todos os requisitos apenas porque a estrutura parecia incomum.

Cometi um erro comum. Confundi atividade com correção.

Um portão pode ser muito ativo e muito equivocado ao mesmo tempo. Uma contagem alta de bloqueios não prova valor. Ela apenas prova que o portão está disparando.

Aqui está como aprendi a identificar se um portão está realmente fazendo o seu trabalho:

  • Observe os motivos dos bloqueios. Eles capturam defeitos reais? Ou eles apenas tropeçam nos mesmos padrões superficiais?
  • Observe as retentativas. Uma retentativa resolve o problema real? Ou o código apenas muda de forma para agradar o portão? Se o código apenas muda de forma sem melhorar, o portão é um problema.
  • Verifique a convergência final. O trabalho acaba passando por seus próprios méritos? Se você tiver que enfraquecer o portão para fazer o trabalho passar, o portão estava errado.

Um portão que funciona bem torna o sistema melhor. Um portão ruim apenas faz o sistema se adaptar ao portão. Você acaba com um código moldado para agradar o validador, em vez de um código que é realmente bom.

Pare de olhar para a contagem total. A contagem total mostra atividade. A amostra mostra a verdade.

Audite uma amostra do que seus portões, linters ou filtros bloqueiam. Se você testar seus guardiões apenas com entradas ruins, estará fazendo apenas perguntas lisonjeiras. Você também deve testar se eles permitem que entradas boas e incomuns passem.

Você audita suas contagens de bloqueio? Como você decide se uma rejeição foi justificada?

Source: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk

Optional learning community: https://t.me/GyaanSetuAi