Come parte di un piano di miglioramento della qualità del software, recentemente abbiamo codificato una serie di sniff di codice da integrare nel nostro processo di compilazione.
Costruiamo molto, essendo un'applicazione PHP non esiste una vera compilation, quindi la build è in realtà un test unitario / analisi statica / runner e possiamo permetterci di dedicare qualche ciclo a questo.
Abbiamo riscontrato alcuni problemi di qualità del codice e alcuni codici legacy con molti problemi.
Partendo dal presupposto che se non fallisce il commit verrà ignorato, iniziamo a confermare i commit rispetto al nostro standard di codifica 'desiderato', e il fallimento commette errori che non soddisfano lo standard.
Arresto della manutenzione, anche la più semplice correzione di un componente legacy ha richiesto allo sviluppatore di riformattare enormi quantità di risorse e la compilazione è stata interrotta il più delle volte. Inutile dire che abbiamo modificato gli errori in avvertenze e ora sono ignorati e "per lo più" inutili.
Quindi direi questo (imparato da una lunga esperienza).
Assicurati che lo standard della tua base di codice sia abbastanza vicino allo standard che imponi di non richiedere agli sviluppatori di riformattare i volumi di codice, istantaneamente. Oppure .. Sei preparato e ti aspetti un aumento dello sforzo.
Essendo una piccola squadra con un enorme fabbisogno di consegna, non potevamo permetterci di cambiare la squadra in una enorme operazione di ri-fattore. I nostri standard di codifica ora sono per lo più gestiti dalla revisione manuale e l'eredità viene riscritta come parte di un piano di miglioramento continuo.
Quando ho detto che gli avvertimenti sono "per lo più" inutili, beh ora li usiamo per registrare statistiche che ci permettono di misurare kpi che dovrebbero continuare a mostrare miglioramenti.
Quando applichiamo nuovamente il codice annusiamo, inizieremo alla luce e introdurremo qualche sniffata alla volta finché non avremo lo standard applicato.