La revisione del codice è una parte del processo di sviluppo del software che prevede di testare il codice sorgente per identificare i bug in una fase iniziale. La procedura di revisione del codice di solito viene condotto prima dell’integrazione nel codebase.

Un’efficace revisione del codice impedisce che bug ed errori si facciano strada nel vostro progetto, cosa che migliorerà la qualità del codice in una fase iniziale della procedura di sviluppo del software.

In questo articolo, spiegheremo cos’è la revisione del codice ed esploreremo i più diffusi strumenti di revisione del codice che aiutano le organizzazioni nella procedura di revisione del codice.

Cos’È la Procedura di Revisione del Codice?

L’obiettivo primario della procedura di revisione del codice è quello di valutare qualsiasi nuovo codice per cercare bug, errori e verificare il rispetto degli standard di qualità stabiliti dall’organizzazione. La procedura di revisione del codice non dovrebbe consistere solo in un feedback unilaterale. Pertanto, un beneficio intangibile della procedura di revisione del codice è il miglioramento delle capacità di codifica di tutto il team.

Se desiderate avviare una procedura di revisione del codice all’interno della vostra organizzazione, dovreste prima decidere chi deve rivedere il codice. Se fate parte di un piccolo team, potete assegnare ai lead del team la revisione di tutto il codice. In un team più grande con più revisori, potreste attivare una procedura in cui ogni revisione del codice viene assegnata a uno sviluppatore esperto in base al suo carico di lavoro.

La prossima considerazione per voi è quella di decidere le tempistiche, i turni e i requisiti minimi per la presentazione delle richieste di revisione del codice.

La considerazione finale riguarda il modo in cui il feedback dovrebbe essere dato nella procedura di revisione del codice. Assicuratevi di evidenziare gli aspetti positivi del codice, suggerendo al tempo stesso delle alternative per gli svantaggi.

Il vostro feedback dovrebbe essere costruttivo in modo da incoraggiare lo sviluppatore a comprendere il vostro punto di vista e ad avviare una conversazione quando necessario.

Mantenete il vostro feedback istruttivo
Mantenete il vostro feedback istruttivo

È facile che le revisioni del codice rimangano bloccate in un limbo, il che porta ad essere meno efficienti e persino controproducenti.

Perché la Revisione del Codice È Fondamentale?

La procedura di revisione del codice è fondamentale perché non fa mai parte del programma di studi nelle scuole. Potete imparare le sfumature di un linguaggio di programmazione e di project management, ma la revisione del codice è una procedura che si evolve con l’età dell’organizzazione.

La revisione del codice è fondamentale per i seguenti motivi:

  • Assicuratevi di non avere bug nel codice.
  • Ridurre al minimo le possibilità di avere problemi.
  • Confermare che il nuovo codice aderisce alle linee guida.
  • Aumentare l’efficienza del nuovo codice.

Le revisioni del codice portano a migliorare ulteriormente le competenze degli altri membri del team. Poiché uno sviluppatore senior di solito si occupa della revisione del codice, uno sviluppatore junior può utilizzare questo feedback per migliorare le sue capacità di codifica.

Come Eseguire una Revisione del Codice?

Ci sono quattro modi per condurre le revisioni del codice.

Revisioni del Codice Over-the-Shoulder

Le revisioni del codice vengono effettuate sulla postazione di lavoro dello sviluppatore, dove un membro del team esperto scorre il nuovo codice, fornendo suggerimenti durante la conversazione. È l’approccio più semplice alle revisioni del codice e non richiede una struttura predefinita.

Tale revisione del codice può essere effettuata ancora oggi in modo informale, insieme ad un’eventuale procedura formale di revisione del codice già in atto. Le revisioni del codice over-the-shoulder sono tradizionalmente effettuate di persona, mentre i team distribuiti possono seguire questo metodo anche attraverso strumenti collaborativi.

Email Pass-Around

Mentre le revisioni del codice over-the-shoulder sono un ottimo modo per rivedere il nuovo codice, i team geograficamente distribuiti si sono tradizionalmente affidati alle email per le revisioni del codice.

In questa procedura di revisione del codice, uno sviluppatore invia un’email con le modifiche all’intero team di sviluppo, di solito attraverso sistemi di controllo delle versioni che automatizzano le notifiche. Questa email avvia una conversazione sulle modifiche, dove i membri del team possono richiedere ulteriori modifiche, segnalare errori o chiedere chiarimenti.

Email Pass Around attraverso Google Groups ad ogni nuovo push
Email Pass Around attraverso Google Groups ad ogni nuovo push

All’inizio, la posta elettronica era il principale mezzo di comunicazione grazie alla sua versatilità. Le organizzazioni open source spesso mantenevano una mailing list pubblica, che serviva anche come mezzo per discutere e fornire feedback sul codice.

Con l’avvento degli strumenti di revisione del codice, queste mailing list esistono ancora, ma soprattutto per gli annunci e le discussioni successive.

Programmazione in Coppia

La programmazione in coppia può essere a volte inefficiente
La programmazione in coppia può essere a volte inefficiente

La programmazione in coppia è una procedura di revisione continua del codice. Due sviluppatori siedono su una postazione di lavoro, ma solo uno di loro codifica attivamente, mentre l’altro fornisce un feedback in tempo reale.

Anche se può servire come un ottimo strumento per ispezionare il nuovo codice e formare gli sviluppatori, potrebbe rivelarsi potenzialmente inefficiente a causa della sua natura, che richiede tempo. Questa procedura blocca il revisore dal fare qualsiasi altro lavoro produttivo durante la revisione.

Tool-Assisted

Una procedura di revisione del codice assistito da uno strumento comporta l’uso di uno strumento specializzato per facilitare la procedura di revisione del codice. Uno strumento generalmente aiuta a svolgere i seguenti compiti:

  • Organizzare e visualizzare i file aggiornati in una modifica.
  • Facilitare una conversazione tra revisori e sviluppatori.
  • Valutare l’efficacia della procedura di revisione del codice con metriche.

Mentre questi sono i requisiti generali di uno strumento di revisione del codice, gli strumenti moderni possono fornire una manciata di altre funzioni. Esploreremo una serie di strumenti di revisione del codice più avanti in questo articolo.

Perché Utilizzare gli Strumenti di Revisione del Codice?

Il risultato principale di una procedura di revisione del codice è l’aumento dell’efficienza. Mentre questi metodi tradizionali hanno funzionato in passato, potreste perdere efficienza se non passate a uno strumento di revisione del codice. Uno strumento di revisione del codice automatizza la procedura di revisione in modo che il revisore si concentri esclusivamente sul codice.

Uno strumento di revisione del codice si integra con il vostro ciclo di sviluppo per avviare la revisione prima che il nuovo codice venga fuso nella base principale. Potete scegliere uno strumento compatibile con il vostro stack tecnologico per integrarlo perfettamente nel vostro flusso di lavoro.

Per esempio, se utilizzate Git per la gestione del codice, TravisCI per l’integrazione continua, assicuratevi di selezionare uno strumento che supporti queste tecnologie per poterle inserire nel processo di sviluppo.

Ci sono due tipi di test del codice nello sviluppo del software: dinamico e statico.

L’analisi dinamica consiste nel verificare se il codice segue un insieme di regole e nell’eseguire test unitari, tipicamente eseguiti da uno script predefinito. Il test statico del codice viene fatto dopo che uno sviluppatore crea un nuovo codice da fondere nel codice corrente.

Ora tuffiamoci in alcuni dei più popolari strumenti di revisione del codice!

Uno Sguardo Più Attento a 12 Potenti Strumenti di Revisione del Codice

In questa sezione, passiamo in rassegna i più popolari strumenti di revisione del codice statico.

1. Review Board

Review Board è uno strumento open source basato sul web. Per testare questo strumento di revisione del codice, potete dare un’occhiata alla demo sul loro sito web o scaricare e impostare il software sul vostro server.

Panoramica di Review Board
Panoramica di Review Board

I prerequisiti per eseguire Review Board su un server sono il linguaggio di programmazione Python e i suoi strumenti di installazione, MySQL o PostgreSQL come database, e un server web.
È possibile integrare la scheda di revisione con una vasta gamma di sistemi di controllo di versione – Git, Mercurial, CVS, Subversion e Perforce. È inoltre possibile collegare Review Board ad Amazon S3 per memorizzare gli screenshot direttamente nello strumento.

Panoramica delle modifiche su Review Board
Panoramica delle modifiche su Review Board

Review Board vi consente di eseguire sia le revisioni del codice pre-commit che quelle post-commit, a seconda delle esigenze. Se non avete integrato un sistema di controllo di versione, potete usare un file diff per caricare le modifiche del codice nello strumento per una revisione.

Viene inoltre fornito un confronto grafico delle modifiche apportate al vostro codice. Oltre alla revisione del codice, la commissione di revisione consente di effettuare anche la revisione dei documenti.

La prima versione di Review Board è uscita più di dieci anni fa, ma è ancora in fase di sviluppo. Pertanto, la comunità di Review Board è cresciuta nel corso degli anni e probabilmente troverete supporto in caso di problemi con l’utilizzo di questo strumento.

Review Board è un semplice strumento per la revisione del codice, che potete ospitare sul vostro server. Dovreste provarlo se non volete ospitare il vostro codice su un sito web pubblico.

2. Crucible

Crucible è uno strumento collaborativo di revisione del codice di Atlassian. È una suite commerciale di strumenti che permette di rivedere il codice, discutere le modifiche ai piani e identificare i bug attraverso una serie di sistemi di controllo di versione.

Crucible prevede due piani di pagamento, uno per i piccoli team e l’altro per le imprese. Per un piccolo team, è necessario effettuare un pagamento una tantum di $10 per repository illimitati, utilizzabili però da un massimo di cinque utenti. Per i grandi team, le tariffe partono da $1100 per dieci utenti e repository illimitati.

Entrambi questi piani offrono una prova gratuita di 30 giorni senza bisogno di una carta di credito.

Strumento di revisione del codice del Crucible
Strumento di revisione del codice Crucible (fonte)

Simile a Review Board, Crucible supporta un gran numero di sistemi di controllo di versione – SVN, Git, Mercurial, CVS e Perforce. La sua funzione primaria è quella di consentire di eseguire revisioni del codice. Oltre ai commenti generali sul codice, consente di commentare in linea all’interno della vista diff per individuare esattamente ciò a cui ci si riferisce nello specifico.

Crucible si integra bene con gli altri prodotti aziendali di Atlassian come Confluence e Enterprise BitBucket. Tuttavia, è possibile ottenere il massimo dei vantaggi da Crucible utilizzandolo insieme a Jira, Atlassian’s Issue e Project Tracker. Permette di eseguire revisioni e audit pre-commit sul codice combinato.

3. GitHub

Se usate GitHub per mantenere i vostri repository Git sul cloud, potreste aver già usato i fork e le richieste pull per rivedere il codice. Nel caso non abbiate idea di cosa sia GitHub, ecco una guida per principianti su GitHub e sulle differenze tra Git e GitHub.

Lo strumento di revisione del codice di GitHub dentro una pull request
Lo strumento di revisione del codice di GitHub dentro una pull request

GitHub include uno strumento di revisione del codice integrato nelle sue richieste pull. Lo strumento di revisione del codice è fornito in bundle con il servizio principale di GitHub, che fornisce un piano gratuito per gli sviluppatori. Il piano gratuito di GitHub limita il numero di utenti a tre nei repository privati. I piani a pagamento partono da $7 al mese.

GitHub permette ad un revisore con accesso al repository del codice di assegnarsi alla richiesta pull e completare una revisione. Uno sviluppatore che ha presentato la richiesta di pull può anche richiedere una revisione ad un amministratore.

Oltre alla discussione sulla richiesta di pull, è possibile analizzare il diff, fare commenti inline e controllare la cronologia delle modifiche. Lo strumento di revisione del codice permette anche di risolvere semplici conflitti Git attraverso l’interfaccia web. GitHub si integra anche con altri strumenti di revisione attraverso il suo marketplace per creare una procedura più robusto.

Il tool di revisione del codice di GitHub è un ottimo strumento se siete già registrati nella piattaforma. Non richiede alcuna installazione o configurazione aggiuntiva. Il problema principale dello strumento di revisione del codice di GitHub è che supporta solo i repository Git ospitati su GitHub. Se state cercando uno strumento di revisione del codice simile che potete scaricare e ospitare sul vostro server, potete provare GitLab.

4. Axolo

Axolo non è quello che vi aspettate quando leggete “strumento di revisione del codice”. Probabilmente vi state immaginando una schermata piena di diff. Non è affatto così! Axolo è tutto incentrato sulla comunicazione. In particolare, Axolo prende tutte le consuete discussioni su GitHub o GitLab e le trasferisce su Slack.

Discussione su Slack di Axolo
Discussione su Slack di Axolo

Lo fanno creando un canale Slack effimero per ogni revisione del codice, invitando solo le persone che dovrebbero essere presenti (autori del codice, gli assegnatari e i revisori), inviando solo le notifiche necessarie nel canale (commenti sul codice, CI/CD, …) e archiviando il canale una volta che la branch è stata unita.

Il metodo Axolo
Il metodo Axolo

Grazie ai promemoria giornalieri, alle notifiche di riepilogo delle richieste di pull per gli stand-up e alle fasce orarie dedicate alla revisione del codice, i team di ingegneri possono rivedere il codice senza problemi, senza che le richieste di pull rimangano lettera morta.

5. Collaborator

Collaborator by SmartBear è uno strumento peer code e di revisione dei documenti per i team di sviluppo. Oltre alla revisione del codice sorgente, Collaborator consente ai team di rivedere anche i documenti di progettazione. Un pacchetto di licenze per 5 utenti ha un prezzo di $535 all’anno. Una prova gratuita è disponibile a seconda delle vostre esigenze aziendali.

Collaborator Review Source
Collaborator Review Source

Collaborator supporta un gran numero di sistemi di controllo di versione come Subversion, Git, CVS, Mercurial, Perforce e TFS. Fa un buon lavoro di integrazione con i popolari strumenti di gestione dei progetti e IDE come Jira, Eclipse e Visual Studio.

Questo strumento consente anche la reportistica e l’analisi delle metriche chiave relative alla vostra procedura di revisione del codice. Inoltre, Collaborator aiuta anche nella gestione degli audit e nel tracciamento dei bug. Se il vostro stack tecnologico include il software aziendale e avete bisogno di supporto per impostare la vostra procedura di revisione del codice, dovreste provare Collaborator.

6. CodeScene

CodeScene è uno strumento di revisione del codice che va oltre la tradizionale analisi statica del codice. Esegue l’analisi del codice comportamentale includendo una dimensione temporale per analizzare l’evoluzione della vostra codebase. CodeScene è disponibile in due forme: una soluzione cloud-based e una soluzione on-premise.

I piani basati sul cloud di CodeScene sono gratuiti per i repository pubblici ospitati su GitHub. Per un massimo di dieci repository privati e un team di dieci membri, CodeScene costa €99 (circa $115) al mese. Un’installazione on-premise di CodeScene costa €15 (circa $17) per sviluppatore al mese.

Analisi dello strumento di revisione del codice di CodeScene
Analisi dello strumento di revisione del codice di CodeScene

CodeScene elabora la cronologia del vostro controllo di versione e la traspone in grafiche. Oltre a questo, applica algoritmi di machine learning per identificare modelli sociali e rischi nascosti nel codice.

Attraverso la cronologia del controllo di versione, CodeScene traccia i profili di ogni membro del team per mappare la sua knowledge base e creare dipendenze tra i team. Inoltre, introduce il concetto di hotspot nel vostro repository identificando i file che subiscono la maggior parte delle attività di sviluppo. Vi indica così gli hotspot che richiedono la massima attenzione in futuro.

Knowledge Maps di CodeScene
Knowledge Maps di CodeScene

Se state cercando uno strumento che vada oltre un tradizionale strumento di revisione del codice, non perdete la prova gratuita di CodeScene. Per saperne di più sulla logica alla base dell’analisi del codice comportamentale di CodeScene, date un’occhiata a questo white paper sui casi d’uso e i ruoli di CodeScene.

7. Visual Expert

Visual Expert è una soluzione aziendale per la revisione del codice specializzata in codice di database. Offre il supporto per tre sole piattaforme: PowerBuilder, SQL Server e Oracle PL/SQL. Se utilizzate un qualsiasi altro DBMS, non sarà possibile integrare Visual Expert per la revisione del codice.

È disponibile una prova gratuita, ma dovrete inviare una richiesta per ottenere un preventivo di prezzo.

Panoramica dello strumento di revisione del codice per Visual Expert
Panoramica dello strumento di revisione del codice per Visual Expert (fonte)

Oltre alla tradizionale revisione del codice, Visual Expert analizza ogni modifica realizzata nel codice per cercare eventuali problemi di performance dovuti alle modifiche. Lo strumento è anche in grado di generare automaticamente una documentazione completa della vostra applicazione partendo dal codice.

Se utilizzate PowerBuilder, SQL Server o Oracle PL/SQL e desiderate uno strumento di revisione del codice specializzato per le vostre esigenze, dovreste provare Visual Expert (ecco una guida alla costruzione di query WordPress efficienti).

8. Gerrit

Gerrit è uno strumento gratuito e open source di revisione del codice basato sul web per i repository Git, scritto in Java. Per usare Gerrit, dovete scaricare il codice sorgente ed eseguirlo in Java. Ecco la procedura di installazione per una versione standalone di Gerrit.

Strumento di revisione del codice Gerrit
Strumento di revisione del codice Gerrit

Gerrit combina le funzionalità di un bug tracker e quelle di uno strumento di revisione. Durante una revisione, le modifiche vengono visualizzate fianco a fianco in un diff unificato, con la possibilità di avviare una conversazione per ogni riga di codice aggiunta. Questo strumento funziona come un passo intermedio tra uno sviluppatore e il repository centrale. Inoltre, Gerrit incorpora anche un sistema di votazione.

Se possedete la competenza tecnica per installare e configurare Gerrit, e siete alla ricerca di uno strumento gratuito per la revisione del codice, questo dovrebbe servire come soluzione ideale per i vostri progetti.

9. Rhodecode

Rhodecode è uno strumento basato sul web che vi assiste nell’esecuzione di revisioni del codice. Supporta tre sistemi di controllo di versione: Mercurial, Git e Subversion. Una versione di Rhodecode basata su cloud parte da $8 al mese per utente, mentre una soluzione on-premise costa $75 all’anno per utente. Oltre alla versione software aziendale, è disponibile l’edizione community che è gratuita e open source: potete scaricarla e compilarla gratuitamente.

Rhodecode
Rhodecode

Rhodecode consente a un team di collaborare efficacemente attraverso la revisione iterativa e conversazionale del codice per migliorarne la qualità. Questo strumento fornisce inoltre un livello di gestione dei permessi per uno rendere più sicuro lo sviluppo.

Inoltre, un changelog visivo vi aiuta a navigare la storia del vostro progetto attraverso varie ramificazioni. Un editor di codice online è disponibile anche per piccole modifiche attraverso l’interfaccia web.

Rhodecode si integra perfettamente con i vostri progetti esistenti, il che lo rende un’ottima scelta per chi cerca uno strumento di revisione del codice basato sul web. Pertanto, l’edizione community è l’ideale per chi ha esperienza tecnica e cerca uno strumento di revisione del codice gratuito e affidabile.

10. Veracode

Veracode fornisce una suite di strumenti di revisione del codice che consentono di automatizzare i test, accelerare lo sviluppo, integrare una procedura di bonifica e migliorare l’efficienza del progetto. La suite di strumenti di revisione del codice di Veracode è commercializzata come soluzione di sicurezza che cerca le vulnerabilità nei vostri sistemi. Essi forniscono un set di due strumenti di revisione del codice:

  • Static Analysis: Uno strumento che permette agli sviluppatori di identificare e correggere i difetti di sicurezza nel loro codice.
  • Software Composition Analysis: Uno strumento che gestisce la procedura di correzione e mitigazione dei difetti del codice.
Panoramica di Veracode
Panoramica di Veracode (fonte)

La revisione del codice fa parte della Software Composition Analysis e potete optare per una demo di Veracode prima di impegnarvi completamente in essa. Ecco il link per richiedere un preventivo.

11. Reviewable

Reviewable è uno strumento di revisione del codice per le richieste pull di GitHub. È gratuito per i repository open source, con piani per i repository privati a partire da $39 al mese per dieci utenti. Dal momento che lo strumento è integrato con GitHub, potete accedere utilizzando il vostro account GitHub e iniziare.

Panoramica dello strumento di revisione del codice Reviewable
Panoramica dello strumento di revisione del codice Reviewable

Se volete vedere come risulta una tipica revisione fatta con Reviewable, potete dare un’occhiata alla revisione demo.

Un aspetto interessante di Reviewable è che supera alcuni inconvenienti della revisione del codice presenti nella funzionalità di richiesta pull di GitHub. Per esempio, un commento su una linea di codice viene automaticamente nascosto da GitHub una volta che uno sviluppatore cambia la linea perché GitHub presume che il problema sia stato risolto. In realtà, le cose possono essere diverse.

Inoltre, GitHub ha limiti di linea relativamente ridotti per la visualizzazione dei file diff.

Se siete alla ricerca di uno strumento strettamente coerente con GitHub ma desiderate più funzionalità che richieste di pull, Reviewable dovrebbe essere il vostro strumento di riferimento.

12. Peer Review for Trac

Se utilizzate Subversion, il plugin Peer Review for Trac fornisce un’opzione gratuita e open source per condurre revisioni del codice sui vostri progetti. Il Peer Review Plugin si integra nel progetto open source Trac, che è un wiki e un sistema di tracciamento dei problemi per i progetti di sviluppo.

Plugin Peer Review for Trac
Panoramica del plugin Peer Review for Trac (fonte)

Trac integra il wiki e l’issue tracker con le vostre recensioni per fornire una soluzione end-to-end. Mentre sono disponibili le funzionalità di base per confrontare le modifiche e la conversazione, il plugin consente di progettare flussi di lavoro personalizzati per i vostri progetti.

Ad esempio, potreste decidere i compiti da svolgere in seguito a un trigger come la presentazione di una modifica o l’approvazione di una revisione del codice. Potete anche creare report personalizzati sui vostri progetti.

Se siete anche alla ricerca di un wiki per la documentazione e di un issue tracker per gestire la roadmap del vostro progetto, Trac potrebbe essere l’opzione corretta per voi.

Riepilogo

La procedura di revisione del codice gioca un ruolo chiave quando si tratta di aumentare l’efficienza della vostra organizzazione. In particolare, sfruttare il giusto strumento di revisione vi aiuta a rimuovere la ridondanza nel vostro ciclo di sviluppo.

Abbiamo guardato più da vicino gli strumenti di revisione del codice più popolari disponibili nel [anno] ed ecco cosa abbiamo trovato:

  • Per un piccolo team che ha appena iniziato, Review Board è una buona scelta per avviare la procedura di revisione del codice.
  • Se state cercando uno strumento di revisione del codice open-source, provate Gerrit, Peer Review for Trac, o l’edizione community di Rhodocode.
  • State cercando uno strumento di revisione del codice abbastanza facile da usare e con supporto? Dovreste provare Rhodecode.
  • Se usate Git e GitHub per gestire il vostro codice base, provate l’editor di revisione del codice integrato in GitHub. Se volete andare oltre le caratteristiche di base delle richieste pull, dovreste dare un’occhiata a Reviewable.
  • Appartenete a un team che utilizza Oracle, SQL Server o PowerBuilder per la gestione del codice del vostro database? Potete provare Visual Expert, uno strumento di revisione del codice specializzato in codice di database.
  • Se siete alla ricerca di una soluzione aziendale, provate Crucible di Atlassian, Collaborator di SmartBear o Veracode.
  • Nel caso in cui vogliate usare ML e AI per andare oltre la revisione del codice nell’analisi comportamentale, dovreste dare un’occhiata a CodeScene.

Ora tocca a voi: quale strumento di revisione del codice utilizzate? Perché? Ditecelo nei commenti!

Letture consigliate:

Shaumik Daityari

Shaumik è un data analyst di giorno e un appassionato di fumetti di notte (o forse è Batman?). Shaumik scrive tutorial e crea screencast da oltre cinque anni. Quando non lavora, è impegnato ad automatizzare le banali attività quotidiane attraverso script scritti meticolosamente!