Come dare correttamente una revisione del codice

Foto di rawpixel su Unsplash

Sei seduto alla tua scrivania, a pensare ai fatti tuoi, quando uno dei tuoi colleghi si avvicina e ti chiede se potresti dare loro una recensione del codice. Non volendo sembrare scortese (e ricordando che non ti hanno concesso questo favore non molto tempo fa), accetti di camminare verso la loro scrivania per esaminare su cosa stanno lavorando.

A questo punto, non hai idea di cosa stia lavorando il tuo collega. Potrebbe essere una semplice correzione di bug, una piccola funzionalità o un importante refactor. Indipendentemente dalle dimensioni e dalla scala dell'attività, dovresti sempre andare preparato quando stai dando una revisione del codice. Per scoprire come, leggi sotto.

Le basi: che cos'è una revisione del codice?

Secondo Wikipedia, una revisione del codice è:

Un'attività di garanzia della qualità del software in cui uno o più esseri umani controllano un programma principalmente visualizzando e leggendo parti del suo codice sorgente, e lo fanno dopo l'implementazione o come interruzione dell'implementazione. Almeno uno degli umani non deve essere l'autore del codice.

E in parole semplici, significa che per migliorare la qualità del prodotto della tua azienda, è necessario che persone diverse valutino il codice.

Fino a questo punto, presumo di non aver aggiunto nulla di nuovo alla tua percezione di una revisione del codice. Ma in tutta onestà, ci sono ancora molte ambiguità:

  • Come dovrebbe iniziare una revisione del codice?
  • Come si fa a sapere se una recensione del codice è buona o cattiva?
  • Quanto dovrebbe durare una revisione del codice?

Questi sono solo alcuni esempi di domande che sono sicuro che stai ponendo. Anche se non esiste una risposta semplice per ciascuno di essi, esistono delle linee guida che puoi seguire per aiutarti.

Foto di Toa Heftiba su Unsplash

La preparazione è la chiave

Prima di passare alla revisione del codice stesso, poni queste due domande:

  1. Sei a conoscenza di ciò su cui il tuo collega ha lavorato?
  2. Conosci l'area del codice su cui stanno lavorando?

Se hai risposto no a una di queste domande, allora devi fare alcuni compiti. Questo è così puoi venire alla revisione del codice il più preparato possibile.

Un modo per colmare il divario è guardare il biglietto / problema associato alla funzione. Lì dovresti trovare abbastanza informazioni per farti conoscere l'ambito e il ragionamento alla base dell'attività dello sviluppatore. Inoltre, se è consuetudine sul posto di lavoro, è possibile esaminare i commenti nel ticket. Vuoi vedere se ci sono state modifiche al ticket che non corrispondono all'intenzione originale. E se tutto il resto fallisce, prima di iniziare la revisione del codice, chiedi al membro del tuo team di spiegare su cosa stanno lavorando e perché.

Ciò che tendo sempre a fare, anche se sono ben consapevole di ciò che è il compito, è chiedere allo sviluppatore di spiegare l'ambito del compito con le proprie parole. In questo modo posso ridurre al minimo il rischio di non essere consapevole di qualcosa nel compito. Quando lo sviluppatore riesce a ripetere ciò che ha fatto, può meglio spiegare a se stesso ciò che ha fatto.

Foto di Kyle Smith su Unsplash

Ascolta, poi Chiedi

Ogni conversazione è una strada a doppio senso: mentre una parte parla, l'altra parte ascolta. La stessa logica si applica a una revisione del codice. Cerca di non interrompere l'altro sviluppatore in modo da non interrompere il flusso che hanno preparato nelle loro menti. Prendi appunti mentali o scrivi cose che ti sembrano importanti per ricordare a te stesso cosa chiedere quando fai il tuo turno.

Una revisione del codice può diventare lunga e noiosa ed è importante rimanere concentrati e porre domande cruciali. Se c'è qualcosa che non capisci, chiedi allo sviluppatore di elaborarlo. Non c'è da vergognarsi di non essere perfettamente informato in ogni sezione della tua base di codice.

Ponendo domande, non solo acquisisci maggiore familiarità con il codice, ma lo sviluppatore sta anche sperimentando di dover spiegare a qualcun altro ciò che ha fatto. In tal modo, il più delle volte, lo sviluppatore potrebbe identificare uno scenario a cui non hanno pensato. Oppure potresti vedere un certo flusso che potrebbe causare un bug.

So che alcuni di voi potrebbero dire: “ma come posso fare domande se ho meno / più esperienza dell'altro sviluppatore? Non sarà maleducato? "

La risposta è no.

Quando non si può chiedere, non c'è apprendimento. Il punto centrale di una revisione del codice non è solo quello di applicare un timbro di approvazione a ciò che l'altro sviluppatore ha fatto. Sei lì per andare oltre la logica del codice, ma sei anche in parte responsabile della struttura generale del codice.

Foto di Thao Le Hoang su Unsplash

Sii empatico ma onesto

Gli sviluppatori sono orgogliosi del loro lavoro. Come la maggior parte degli esseri umani, a loro non piace sentire qualcun altro dire loro cosa stanno facendo di sbagliato. Comunque sia, è importante far sentire la tua voce come recensore.

Simile a come ogni persona avrà un sapore diverso di gelato, ogni sviluppatore ha un'opinione diversa su come il codice dovrebbe essere scritto e mantenuto. Tuttavia, ci sono alcune verità comuni a cui ogni sviluppatore deve attenersi. Quindi, per mantenere la calma, assicurati di esprimere le tue affermazioni in modo costruttivo. In questo modo, nessuno dovrebbe offendersi.

Certo, avrai dei disaccordi. In determinate situazioni sarà importante sottolineare gli svantaggi del codice che deve essere riscritto. Se raggiungi un vicolo cieco, prova a parlarne con un altro sviluppatore o un capo squadra. Non dimenticare che dall'altra parte c'è un altro sviluppatore con il proprio punto di vista.

Buone cose da tenere a mente

Mentre gli argomenti discussi sopra formano il treppiede di una revisione del codice (se vuoi), ci sono anche altre cose a cui prestare attenzione:

  • Se pertinente, chiedere se sono stati aggiunti test unitari e, in tal caso, superarli
  • La documentazione fa parte della revisione del codice (e se non ce n'è, discutere il punto di aggiungerla)
  • Prima che inizi la revisione del codice, chiedi allo sviluppatore quanto tempo dovrebbe pensare (questo ti aiuterà a pianificare la tua giornata di conseguenza)
  • Se ci sono molte modifiche a seguito della revisione del codice, assicurati di programmarne un'altra in modo che la prossima iterazione non passi inosservata
  • Sii cortese e prova a fare complimenti agli altri sviluppatori per quello che hanno fatto

Non esistono due revisioni del codice simili e, analogamente alla maggior parte delle attività, la pratica rende perfetti. Fidati del tuo istinto e fidati dei tuoi collaboratori. Tutto il resto lo seguirà.