se accendo gli avvisi e le comunicazioni su questi siti Web di produzione live, saranno sovraccarichi di essi.
Dovresti sempre avere gli avvisi attivati al massimo livello nello sviluppo, nei test e nel QA, ma non nella produzione. In realtà, se si tratta di un'applicazione dogfooding, cioè un'applicazione che usi te stesso, allora dovresti anche averli accesi in produzione.
Fondamentalmente: attivali nei casi in cui la persona che li vede è in grado di fare qualcosa al riguardo (lo sviluppatore in fase di sviluppo e test può risolverli da solo, il tester in QA può presentare un bug e se lo sviluppatore è anche l'utente, quindi può anche risolverlo in produzione), ma non accenderlo quando la persona che vede non può farci nulla (un utente in produzione, che non sa nemmeno come programmare).
Idealmente, vorrai anche attivare il trattamento degli avvisi come errori, ma funziona solo se non ce ne sono per cominciare ;-) Ma tienilo a mente come obiettivo! Se è possibile attivarlo / disattivarlo in base al file, accenderlo per tutti i nuovi file, accenderlo per tutti i file privi di avvisi e non spegnerlo mai più una volta acceso.
Quindi, cosa fare per il sovraccarico?
Fai un elenco di tutti gli avvisi e gli avvisi, quindi segui le seguenti regole:
- Mai e poi mai, in nessun caso aggiungere un nuovo avviso all'elenco. Ogni nuovo pezzo di codice, ogni modifica, ogni modifica, ogni patch, ogni commit non deve introdurre nuovi avvisi, può solo risolverli .
- Ogni volta che tocchi un pezzo di codice, correggi tutti gli avvisi in quel pezzo di codice. (La regola di Boyscout: lascia sempre il campeggio in condizioni migliori di quelle che hai trovato.) In questo modo, il codice non importante può rimanere pieno di avvertimenti, ma il codice importante diventerà più pulito nel tempo. "Pezzo di codice" può essere una funzione, una classe, un file. Puoi anche rilassare questa regola per dire di correggere almeno un avviso. Il punto è: correggili quando li trovi.
Nota: entrambi richiedono la presenza di una sorta di database dei registri e meccanismo di filtraggio dei registri. Si noti inoltre che "database di registro" e "meccanismo di filtraggio dei registri" potrebbero essere solo un file di testo e grep
.
Questa è la parte importante. Senza il database, non si saprà quando si aggiunge un nuovo avviso e senza il filtro si avrà ancora il problema di sovraccarico.
Nota n. 2: questo non funziona solo per gli avvisi, ma funziona anche per verificatori di stile, metriche di complessità, copertura del codice, strumenti di analisi statica e così via. Fondamentalmente:
- Non aggiungere nuovi problemi.
- Risolvi i vecchi problemi mentre ti imbatti in loro.
Ciò consente di stabilire facilmente le priorità: il codice che viene modificato spesso e quindi deve essere facile da leggere e mantenere, migliorerà nel tempo. Il codice che non viene toccato spesso, non migliorerà, ma va bene, perché nessuno deve guardarlo comunque. E almeno non peggiorerà.
Naturalmente, nulla ti impedisce di allocare tempo in modo specifico per non fare altro che cacciare e uccidere gli avvisi. È solo che spesso, questo non è economicamente praticabile, ed è il tuo lavoro come ingegnere a tenerlo presente. "Un ingegnere è colui che può costruire con un dollaro, ciò che qualsiasi sciocco può costruire con due."
@
.