È bello recensire programmi con senior e boss anche se funziona bene?

18

Nella mia azienda, prima della consegna di qualsiasi progetto, il mio capo chiede ai miei senior di rivedere i programmi scritti da me o da altri membri del team o, a volte, anche il capo si siede con noi per la revisione.

Penso che sia un buon modo per ottenere conoscenza, ma a volte quando i programmi funzionano bene, non funzionano dopo la revisione e devo riconsiderare il mio programma.

Dicono che la revisione aiuta a ottimizzare il programma e l'esecuzione della query, ma possiamo preferire l'ottimizzazione rispetto al funzionamento effettivo del programma?

    
posta Himanshu 02.06.2014 - 12:34
fonte

3 risposte

38

"Lavorare bene" è davvero una grande metrica, ma se sei l'unico del team in grado di decifrare ciò che hai scritto, e quindi mantenerlo, il codice è quasi inutile per l'azienda per il medio o lungo termine.

Un buon codice è almeno:

  • funziona come previsto
  • leggibile / chiaro
  • facilmente mantenibile
  • facilmente estendibile per modifiche future
  • sicura
  • senza dipendenze non necessarie
  • gestendo correttamente casi non nominali
  • etc

(Alcuni di questi requisiti sono in realtà sovrapposti ma sono buoni da considerare singolarmente ...)

Le revisioni del codice hanno lo scopo oltre la parte "di lavoro", che può essere eseguita tramite test automatici.

Personalmente so che è fastidioso avere qualcosa che funziona a pezzi, e doverlo ricostruire da zero. Ma, spesso, questo è dovuto a un errore di comunicazione da parte del leader senior / tecnico. Quindi, se pensi di dover riscrivere troppo spesso, la prossima volta, vai dal revisore prima di scrivere una singola riga e cerca di ottenere quante più informazioni possibili su ciò che si aspetta, in ogni dettaglio. Potrebbe anche essere bello se il team di revisori del codice riassuma le loro aspettative in un documento formale a cui ogni dev può fare riferimento.

Da un lato più positivo, una sessione potrebbe anche essere un'occasione per condividere grandi pratiche / progetti.

    
risposta data 02.06.2014 - 13:22
fonte
12

Ho interpretato la tua domanda come "Il mio codice di funzionamento può essere macellato in una revisione fino al punto in cui non viene più compilato?" .

Sì, può. Generalmente, durante una revisione, vedi come il tuo codice fa quello che fa. Quando vuoi consegnare il tuo codice, dici di aver terminato una certa parte del programma.

Dici che funziona. I test vengono quindi eseguiti per verificarlo. Un modulo che passa test non significa che il modulo non debba essere toccato di nuovo.

Un modulo che appare funzionante può ancora essere un disastro in attesa di accadere, sia in fase di esecuzione che in pochi mesi in cui tu o qualcun altro è necessario eseguire la manutenzione su di esso. Cambiando il tuo codice in una recensione e indicando cosa c'è di sbagliato in questo, il tuo revisore sta (si spera) cercando di insegnarti qualcosa.

    
risposta data 02.06.2014 - 12:50
fonte
3

Le recensioni tra pari sono senza dubbio un ottimo modo per apprendere. Qualcuno potrebbe vedere qualcosa di diverso, hanno esperienze diverse per te e dovrebbero essere in grado di apportare miglioramenti. Questo non dovrebbe essere denigratorio, mi aspetterei che ogni sviluppatore sia in grado di commentare e criticare costruttivamente il codice di chiunque!

Mi sembra che alcuni di questi "miglioramenti" stiano effettivamente apportando cambiamenti radicali perché (come ci si aspetterebbe) lo sviluppatore di recensioni ha meno esperienza del software rispetto all'autore.

Questa tendenza è il feedback personale, forse il tuo codice è difficile da seguire o mantenere? Le tue recensioni sono preziose? Assolutamente! Riesco a vedere come può essere frustrante, avere un codice di lavoro che i tuoi pari sembrano rompere, non dovresti scoraggiarti - dovresti lavorare per proteggere il tuo codice contro questi cambiamenti.

La domanda diventa quindi come proteggere la funzionalità dei programmi in modo da sapere che la funzionalità è ancora funzionante dopo aver completato le recensioni. Il mio suggerimento sarebbe quello di garantire una copertura di prova unitaria decente. In questo modo ogni volta che tu / il tuo revisore / il tuo successore cambi il codice, puoi essere sicuro che le modifiche che hanno apportato sono sicure.

ETA: ho appena notato uno dei tuoi commenti, sono sicuro che questo è ovvio, ma le revisioni del codice dovrebbero essere fatte prima che il gruppo di test possa metterle le mani su. Altrimenti non stanno testando il prodotto finale.

    
risposta data 02.06.2014 - 14:04
fonte