Como parte de um plano de melhoria da qualidade de software, recentemente codificamos uma série de farejadores de código para integrar nosso processo de compilação.
Construímos muito, sendo um aplicativo PHP, não há compilação real; portanto, a compilação é realmente um teste de unidade / análise estática / corredor, e podemos dar ao luxo de gastar alguns ciclos nisso.
Tivemos alguns problemas de qualidade de código e algum código legado com muitos problemas.
Começando com base no fato de que, se a falha não ocorrer, a confirmação será ignorada, e começamos a confirmar confirmações contra nosso padrão de codificação 'desejado' e a falha confirma com erros que não atendiam ao padrão.
A manutenção foi interrompida, mesmo a correção mais simples de um componente legado exigiu que o desenvolvedor reformatasse grandes quantidades de fontes, e a construção foi interrompida com mais frequência. Escusado será dizer que alteramos os erros para avisos, e agora eles são ignorados e 'na maior parte' inúteis.
Então, eu diria isso (aprendido com experiências difíceis).
Certifique-se de que o padrão da sua base de código esteja próximo o suficiente do padrão que você impõe, para que não seja necessário que os desenvolvedores reformatem volumes de código instantaneamente. Ou .. Você está preparado e espera o aumento de esforço.
Sendo uma equipe pequena com um enorme requisito de entrega, não podíamos dar ao luxo de mudar a equipe para uma enorme operação de re-fatoração. Nossos padrões de codificação agora são tratados principalmente por revisão manual, e o legado está sendo reescrito como parte de um plano de melhoria contínua.
Quando eu disse que os avisos são "praticamente inúteis", agora os usamos para registrar estatísticas que nos permitem medir os kpis que devem continuar mostrando melhorias.
Quando aplicarmos o código farejar novamente, iniciaremos a luz e introduziremos alguns farejadores de cada vez até que tenhamos o padrão imposto.