Qual è lo scopo di una revisione del codice

74

Sto cercando di vendere la mia organizzazione sul valore delle revisioni del codice. Ho lavorato in diversi posti dove sono stati impiegati. Li ho visti abituati a scelte di styling nitpick e decisioni funzionali, e li ho visti usati come nient'altro che un controllo dell'intestino per assicurarsi che non si stia attuando nulla di pericoloso. La mia sensazione istintiva è che lo scopo più efficace è da qualche parte tra le due opzioni.

Quindi, qual è lo scopo di una revisione del codice?

    
posta SoylentGray 10.09.2014 - 21:34
fonte

4 risposte

75

Esistono diversi motivi per cui desideri eseguire una revisione del codice:

  • Istruzione di altri sviluppatori. Assicurarsi che tutti vedano la modifica associata a una correzione o miglioramento dei difetti in modo che possano comprendere il resto del software. Ciò è particolarmente utile quando le persone stanno lavorando su componenti che devono essere integrati o su sistemi complessi in cui una persona può andare per lunghi periodi senza guardare determinati moduli.
  • Individuazione di difetti o opportunità di miglioramento. Sia il codice consegnabile che il codice di test e i dati possono essere esaminati per trovare punti deboli. Ciò garantisce che il codice di test sia solido e valido e che la progettazione e l'implementazione siano coerenti in tutta l'applicazione. Se è necessario apportare ulteriori modifiche, cattura l'opportunità più vicina al punto di entrata.

Esistono diversi casi aziendali per la conduzione di recensioni:

  • Individuazione di difetti o problemi che dovrebbero essere rielaborati più vicino alla loro iniezione. Questo è più economico.
  • Comprensione della comprensione del sistema e cross-training. Meno tempo a disposizione degli sviluppatori per velocizzare le modifiche.
  • Identificazione di possibili miglioramenti al sistema.
  • Aprire l'implementazione per garantire che i tester forniscano una copertura adeguata. Trasformare una scatola nera in una scatola grigia o una scatola bianca da una prospettiva di prova.

Se stai cercando una discussione esauriente sui vantaggi e sulle strategie di implementazione per le revisioni tra pari, ti consiglio di consultare Recensioni peer nel software: una guida pratica di Karl Wiegers .

    
risposta data 10.09.2014 - 21:53
fonte
49

Le recensioni di codice sono uno strumento per trasferimento di conoscenze .

  • Quando gli sviluppatori si esaminano reciprocamente, acquisiscono familiarità in tutte le aree del sistema. Questo riduce il fattore di bus di un progetto e rende gli sviluppatori più efficienti quando devono fare manutenzione su una parte del sistema che non hanno scritto.

  • Quando un programmatore junior esamina il codice di un anziano, il programmatore junior può raccogliere trucchi altrimenti apprese solo attraverso l'esperienza. Questo può anche funzionare come un correttivo contro un codice eccessivamente complicato.

    Un'analisi approfondita del codice richiederà verifiche frequenti su vari documenti. È un ottimo modo per imparare una lingua o un'API.

  • Quando un programmatore senior esamina il codice di un minore, questa è un'opportunità per appianare i problemi prima che traducono in debito tecnico. Una revisione del codice può essere una buona impostazione per i mentori programmatori minorenni.

Le revisioni del codice non riguardano:

  • ... trovare bug. Ecco a cosa servono i test. Succede spesso che una revisione del codice trovi qualche problema.

  • ... nitpicking sui problemi di stile - accontentarsi di uno stile e utilizzare i formattatori automatici per applicarlo. Ma ci sono molte cose che uno strumento automatico non può controllare. Le revisioni del codice sono un buon posto per assicurarsi che il codice sia sufficientemente documentato o autodocumentato.

risposta data 10.09.2014 - 22:09
fonte
11

La cosa più preziosa che ottengo personalmente da una revisione del codice è la certezza che il codice sia chiaro a un'altra persona. Le variabili sono chiaramente nominate? Lo scopo di ogni blocco di codice è ragionevolmente ovvio? Qualcosa di ambiguo è chiarito con un commento? Sono i casi limite e i valori validi per i parametri delineati nei commenti e controllati nel codice?

    
risposta data 11.09.2014 - 15:07
fonte
6

Vorrei aggiungere due aree non coperte dalle altre grandi risposte:

Un buon motivo per le revisioni del codice è l'effetto Hawthorne che nel nostro caso si traduce in: Se sai che qualcuno sta andando in seguito, per vedere il tuo codice, è molto più probabile che tu lo scriva meglio in un primo momento.

Un altro ottimo motivo è per pratiche di sviluppo più sicure. Basta guardare Apple goto fail (una riga di codice accidentale duplicata) o Heartbleed bug (un errore di base nella convalida dell'input) per comprendere l'importanza delle revisioni corrette del codice in un ciclo di vita sicuro dello sviluppo.

    
risposta data 17.09.2014 - 00:17
fonte

Leggi altre domande sui tag