Nella mia esperienza, il modo migliore è lasciare che il team di buche esegua la revisione del codice. Usiamo una mailinglist di commit in ogni progetto in cui è possibile seguire tutte le modifiche del codice al sistema di controllo della versione. La maggior parte dei nostri sviluppatori si è iscritta alla loro mailing list specifica per il loro progetto perché sono interessati alle modifiche al codice.
Quando qualcuno nota una cattiva strada nel nuovo codice sorgente, o spiega al committer come può farlo in un modo migliore, se il committer è un tirocinante, o inizia una discussione al riguardo, se fosse un committer più esperto.
Ovviamente questo metodo non garantisce che tutti i nuovi codici vengano rivisti, specialmente in periodi di stress in cui nessuno dei membri del team ha il tempo libero di seguire ogni modifica del codice. Inoltre, non tutti gli sviluppatori sono responsabili di garantire che ogni sviluppatore svolga bene il proprio lavoro, da solo non è possibile garantire che venga riesaminato. Ma, almeno nei nostri team, c'è sempre un responsabile tecnico responsabile della qualità tecnica.
Sono un vero fan delle recensioni di codici se sono conformi ai seguenti punteggi:
- ogni sviluppatore ha la possibilità di rivedere tutto il codice e l'argomento secondo la sua opinione
- nessuno ha il diritto di abusare del codice altrui
- non solo un codice errato attiva una discussione, ma anche un buon codice
- le discussioni si concludono con felicità per ogni persona coinvolta
- la revisione avviene quasi in tempo reale, almeno prima del completamento della funzione
Quello che ho imparato è che se sei qualcuno che rivede ogni riga di codice e pensa che devi controllare cose come la qualità del codice in termini di formattazione del codice o efficienza del codice, allora sei te stesso molto inefficiente perché fai cose per le quali le macchine possono fare tu. Il tuo obiettivo dovrebbe essere quello di utilizzare un sistema di integrazione continua che controlla la qualità del build e del codice di ciascun contributo del codice. Se questo sistema genera report e li invia ai collaboratori, tutto è perfetto.
Devo ammettere che se devi rivedere il codice perché devi controllare o classificare la qualità di un programmatore, i miei suggerimenti non hanno senso. In questo caso, non rivederei il codice sorgente riga per riga. Vorrei rivedere cose come:
- ci sono problemi rilevanti per la sicurezza
- si intendono API utilizzate
- il codice ha applicato l'architettura specificata?
- ha scritto test utili (ma solo se è stato istruito implicitamente, ho dovuto imparare)
- Documentazione
- l'accumulo di processo
- ... e alcuni altri, probabilmente
Se sei uno sviluppatore esperto troverai sicuramente cose come i loop che potresti fare con prestazioni migliori. Naturalmente è utile spiegare ad altri tale conoscenza, ma ciò non dovrebbe far parte della sessione di revisione. Se ci sono problemi di prestazioni significative, non perché ha usato una variante meno efficiente di un tipo di elenco.
Poiché la domanda iniziale era perché alcune persone sembrano fare una recensione migliore come altre, risponderei che queste persone potrebbero fare un'anteprima prima dell'inizio della recensione reale, significa che probabilmente si sono preparati da soli in modo che sappiano esattamente cosa vogliono rivedere .