Nell'ambito di un piano di miglioramento della qualità del software, abbiamo recentemente codificato una serie di sniffer di codice da integrare nel nostro processo di creazione.
Costruiamo molto, essendo un'applicazione PHP non esiste una vera compilation quindi la build è davvero un test unitario / analisi statica / runner, e possiamo permetterci di spendere alcuni cicli su 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, abbiamo iniziato a confermare i commit rispetto al nostro standard di codice "desiderato", e fallendo commit con errori che non soddisfano lo standard.
La manutenzione si è fermata, anche la soluzione più semplice a un componente legacy ha richiesto allo sviluppatore di riformattare enormi quantità di sorgente e la build è stata interrotta il più delle volte. Inutile dire che abbiamo modificato gli errori in avvisi, e ora sono ignorati e "per lo più" inutili.
Quindi direi questo (imparato dalla dura esperienza).
Assicurati che lo standard della tua base di codice sia abbastanza vicino allo standard che imponi di non aver bisogno degli sviluppatori per riformattare volumi di codice, all'istante. Oppure .. Sei preparato e ti aspetti un aumento degli sforzi.
Essendo una piccola squadra con un enorme fabbisogno di consegna, non potevamo permetterci di passare alla grande operazione di re-factor. I nostri standard di codifica sono ora gestiti principalmente tramite 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, ora li usiamo per registrare statistiche che ci consentono di misurare i kpi che dovrebbero continuare a mostrare miglioramenti.
Quando applicheremo nuovamente il codice sniffer, inizieremo la luce e introdurremo alcuni sniffer alla volta fino a quando non avremo applicato lo standard.