Non mi definirei uno sviluppatore superstar, ma relativamente esperto. Cerco di mantenere la qualità del codice ad alto livello e cerco sempre di migliorare il mio stile di codifica, cerco di rendere il codice efficiente, leggibile e coerente, nonché di incoraggiare il team a seguire schemi e metodologie per garantire coerenza. Comprendo anche la necessità di un equilibrio tra qualità e velocità.
Per raggiungere questo obiettivo, ho presentato al mio team il concetto di peer review. Due pollici in su nella richiesta pull-pull di github per un'unione. Fantastico - ma non secondo me senza i singhiozzi.
Vedo spesso commenti di peer review degli stessi colleghi come -
- Sarebbe bene aggiungere uno spazio dopo
<INSERT SOMETHING HERE>
- Linea extra indesiderata tra i metodi
- L'arresto completo deve essere utilizzato alla fine dei commenti nei blocchi di documenti.
Ora dal mio punto di vista - il recensore sta guardando superficialmente l'estetica del codice - e non sta davvero eseguendo una revisione del codice. La recensione del codice cosmetico mi appare come mentalità arrogante / elitaria. Manca di sostanza, ma non puoi davvero litigare troppo perché il recensore è tecnicamente corretto . Preferirei di gran lunga vedere meno dei precedenti tipi di recensioni e più recensioni come segue:
- È possibile ridurre la complessità ciclomatica di ...
- Esci presto ed evita if / else
- Estrarre la query DB in un repository
- Questa logica non appartiene davvero qui
- Non ripetere te stesso: astratto e riutilizzo
- Cosa accadrebbe se
X
fosse passato come argomento al metodoY
? - Dov'è il test unitario per questo?
Trovo che sono sempre gli stessi tipi di persone a fornire i tipi di recensioni cosmetiche e gli stessi tipi di persone che secondo me danno le revisioni tra pari "Qualità e logica".
Qual è (se esiste) l'approccio corretto alla revisione tra pari. E ho ragione a sentirmi frustrato con le stesse persone fondamentalmente che passano in rassegna il codice alla ricerca di errori di ortografia e difetti estetici piuttosto che reali difetti del codice?
Se avessi ragione, come potrei incoraggiare i colleghi a cercare effettivamente i difetti nel codice in armonia con la proposta di ritocchi cosmetici?
Se non sono corretto, per favore illuminami. Ci sono delle regole empiriche per ciò che costituisce effettivamente una buona revisione del codice? Ho perso il punto di quali revisioni del codice sono?
Dal mio punto di vista, la revisione del codice riguarda la responsabilità condivisa per il codice. Non mi sentirei a mio agio nel dare il pollice in su al codice senza affrontare / controllare la logica, la leggibilità e la funzionalità. Inoltre non mi preoccuperei di bloccare una fusione per un solido pezzo di codice se notassi che qualcuno ha omesso un punto fermo in un blocco di documenti.
Quando rivedo il codice, trascorro forse tra 15-45 minuti per 500 Loc. Non riesco a immaginare che queste recensioni superficiali impieghino più di 10 minuti in assoluto se questa è la profondità della revisione che stanno eseguendo. Inoltre, quanto valore è il pollice in su del recensore superficiale? Sicuramente questo significa che tutti i pollici non hanno lo stesso peso e potrebbe essere necessario un processo di revisione in 2 passaggi. Un pollice per recensioni approfondite e un secondo pollice per la "lucidatura"?