Qual è l'efficacia della revisione del codice semplicemente leggendo? [duplicare]

6

Mi è stato assegnato il compito di esaminare una richiesta di modifica comprendente più di 20 modifiche, il problema è che non è / non è possibile installare una versione del software da valutare in quanto l'ambiente di sviluppo non può essere facilmente ricreato o installato. La mia domanda è, oltre a rivedere semplicemente la grammatica della lingua, è davvero efficace rivedere le modifiche semplicemente leggendo il codice anziché leggendo, eseguendo il codice e rileggendo?

    
posta Low Kian Seong 20.03.2015 - 07:35
fonte

5 risposte

13

Dove lavoro, l'autore delle modifiche al codice è responsabile per verificare che tali modifiche funzionino effettivamente, mentre il revisore del codice è in genere responsabile per la risoluzione di eventuali problemi relativi alla leggibilità / manutenibilità di tali modifiche o ai casi di individuazione degli angoli che l'autore potrebbe non ho pensato di testare per. In generale, il revisore cerca il tipo di problemi che è più probabile che l'autore manchi proprio perché l'ha scritto. Quindi è del tutto normale per il revisore non testare le modifiche, purché l'autore originale le abbia testate.

E quando la modifica non è al codice dell'interfaccia utente, dovrebbero esserci dei test unitari, quindi è anche responsabilità dell'autore aggiungere o modificare un test per dimostrare che il codice funziona come previsto, ed eseguire effettivamente i test per assicurarsi che tutti ancora passare. Il revisore verificherà quindi i problemi di leggibilità / manutenibilità o casi d'angolo mancati all'interno di tale test, nonché le modifiche al codice "reale". Anche se eseguire un sottoinsieme dei test di unità è così semplice e rapido che di solito lo faccio io stesso quando sto rivedendo qualcosa, anche se tecnicamente non ne ho bisogno.

Ci sono occasioni in cui uno di noi vuole davvero che il revisore lo verifichi, perché è il tipo di cambiamento dell'interfaccia utente che non può essere testato in modo efficace in alcun modo automatizzato, e almeno due persone hanno bisogno di battere per un minuto per dimostrare che non ha infranto nulla. In questi casi chiediamo esplicitamente al revisore di farlo.

    
risposta data 20.03.2015 - 08:49
fonte
5

is it really effective to review changes just by reading the code (...)?

Se hai abbastanza codice di pratica sarai in grado di individuare bug senza software / ambiente di codifica. È buona norma leggere il testo non elaborato e cercare di individuare gli errori (logica o sintassi). Ti aiuterà a diventare un programmatore più strong.

    
risposta data 20.03.2015 - 08:03
fonte
4

La revisione del codice riguarda principalmente la leggibilità e la manutenibilità del codice. Hai anche una verifica di integrità se le modifiche riguardano in qualche modo la richiesta di modifica effettiva.

Se confonde il revisore del codice, probabilmente confonderà chiunque debba modificare il codice successivamente.

Sì, le revisioni del codice possono raccogliere altri potenziali bug, ma la maggior parte di questi potrebbe essere comunque prelevata da vari strumenti di analisi del codice sorgente.

Il vero vantaggio principale delle revisioni del codice è che i programmatori scrivono un codice migliore se sanno che un altro essere umano lo leggerà e chiederà "perché hai archiviato l'imposta sulle vendite in un campo" bonus "" tipo domande.

    
risposta data 20.03.2015 - 10:03
fonte
4

Nel nostro team, lo stile e le regole generali di codifica sono controllati dagli analizzatori di codice con ogni build. Pertanto, quando esaminiamo il codice, principalmente il codice scritto da juniors, cerchiamo di individuare le parti che non seguono i modelli di architettura e design perché questi non possono essere controllati automaticamente dagli strumenti con facilità.

Non eseguiamo il codice perché è obbligatorio scrivere test e avere una copertura del codice superiore all'80%. Ma esaminiamo anche i test tanto quanto l'implementazione. Questa è la parte più vantaggiosa per scoprire possibili problemi di progettazione.

Se un test unitario non è chiaro ed è ingombrante, in genere l'implementazione non è l'ideale. Quindi tendiamo a rivedere prima i test.

    
risposta data 20.03.2015 - 09:16
fonte
3

Direi se c'è una parte di codice che devi eseguire o eseguire il debug per capire cosa fa, il codice deve essere migliorato in termini di leggibilità e la recensione che ha rivelato che è stata abbastanza efficace.

    
risposta data 20.03.2015 - 13:40
fonte

Leggi altre domande sui tag