In Code We Trust: How to Create a Code Review Checklist
Software Teams

In Code We Trust: Come creare una lista di controllo per la revisione del codice

Come ogni sviluppatore sa bene, le revisioni del codice sono fondamentali per individuare gli errori prima che entrino in produzione.

Senza una revisione del codice, rischi il caos derivante dal debug di problemi critici in produzione, con conseguenti ritardi, utenti insoddisfatti e una reputazione compromessa.

Questo articolo ti guiderà nella creazione di una lista di controllo per la revisione del codice che garantisca che il tuo codice sia pulito, sicuro e pronto per la distribuzione. Cominciamo. 🎢

Perché utilizzare una lista di controllo per la revisione del codice?

Una lista di controllo per la revisione del codice ben strutturata garantisce coerenza e completezza. Può aiutare ad assicurare che il codice rispetti convenzioni di denominazione coerenti in tutto il progetto e che tutti gli scenari di gestione degli errori siano gestiti in modo completo.

I revisori che seguono una lista di controllo sono meno propensi a trascurare elementi critici, come la convalida degli input degli utenti o la risoluzione delle vulnerabilità di sicurezza. Ecco alcuni dei principali vantaggi derivanti dall'utilizzo di una lista di controllo per la revisione del codice:

  • Una lista di controllo incoraggia l'adesione alle best practice. Ad esempio, può garantire che le modifiche al codice seguano il principio della responsabilità singola, in base al quale ogni funzione o modulo gestisce un solo compito
  • Può inoltre incoraggiare gli sviluppatori a scrivere una documentazione del codice efficiente con commenti in linea, migliorando la leggibilità e la manutenibilità del codice. Il rispetto delle best practice contribuisce a mantenere un codice di alta qualità e previene problemi comuni come la duplicazione del codice o gli errori di logica
  • Le liste di controllo aiutano a migliorare la collaborazione e la condivisione delle conoscenze tra i team di sviluppo. Possono inoltre sottolineare l'importanza di verificare la copertura dei test, incoraggiando i membri del team a discutere e condividere approfondimenti su test unitari e di integrazione efficaci
  • Una lista di controllo per la revisione del codice favorisce l'uso di strumenti di analisi statica del codice per individuare tempestivamente potenziali problemi, facilitando una condivisione della comprensione di come risolverli. Questo approccio collaborativo migliora la qualità complessiva del codice e l'efficienza, rendendo più semplice la gestione e l'integrazione delle modifiche al codice

In definitiva, una lista di controllo rende la procedura di revisione del codice più sistematica e affidabile, contribuendo a creare software solido, gestibile e di alta qualità.

Preparazione alle revisioni del codice

Una preparazione efficace alla revisione del codice richiede diversi passaggi fondamentali per garantire che il processo sia fluido e di alta produttività. Prima di iniziare con la lista di controllo, è necessario:

1. Comprendere il contesto e l'ambito

Prima di immergerti nel codice, devi comprenderne il contesto, l'ambito e le modifiche recenti apportate. Ciò include la comprensione del suo scopo, della sua funzione e di come si inserisce nel progetto più ampio.

Prendi familiarità con la documentazione relativa al codice o con i modelli di progettazione per garantire che il codice sia conforme agli obiettivi generali del progetto e agli standard di codifica.

💡Consiglio dell'esperto: utilizza le retrospettive del project management agile per perfezionare il tuo processo di revisione del codice, rendendolo più flessibile e incentrato sui miglioramenti immediati per il prossimo sprint.

2. Raccogli le informazioni necessarie

Raccogli tutto il materiale pertinente prima di iniziare la revisione. Questo può includere i dettagli della richiesta pull, i ticket relativi ai problemi e i commenti delle revisioni precedenti. L'uso di software e strumenti adeguati può rivelarsi prezioso in questo caso.

Ad esempio, i software di controllo qualità aiutano a tenere traccia dei casi di test e garantiscono la copertura di tutti gli aspetti del codice, mentre i software di monitoraggio dei bug registrano i problemi noti e le relative risoluzioni. Queste informazioni forniscono una visione completa dell'impatto del codice e aiutano a identificare potenziali aree di preoccupazione.

Software di project management per team di sviluppo di ClickUp
Ottimizza il ciclo di vita dello sviluppo software con il software di project management per team di sviluppo di ClickUp

Il software di project management per team ClickUp è una potente funzionalità che aiuta i team a gestire i flussi di lavoro di sviluppo software, effettuare il monitoraggio delle attività e collaborare senza soluzione di continuità dalla pianificazione iniziale alla distribuzione. Con questo strumento, puoi visualizzare e pianificare progetti complessi con le mappe mentali di ClickUp, che ti consentono di delineare idee e roadmap di prodotto, definire le dipendenze e tracciare il processo di sviluppo dall'inizio alla fine.

Lista di controllo per la revisione del codice

Creare una lista di controllo efficace per la revisione del codice è come impostare la fase per un risultato impeccabile: ogni elemento deve essere controllato meticolosamente per garantire che il prodotto finale sia di altissima qualità.

Ogni aspetto della lista di controllo svolge un ruolo fondamentale nel mantenere un elevato livello di qualità e garantire che il codice sia pronto per la produzione. Ecco un breve riepilogo/riassunto del processo!

🔎 Requisiti delle funzionalità/funzioni

  • Assicurati che il codice soddisfi i requisiti delle funzionalità descritte
  • Assicurati che copra tutte le user story o i ticket rilevanti per gli utenti

👀 Leggibilità e manutenibilità del codice

  • Verifica se il codice è facile da comprendere e seguire
  • Verifica che il codice presenti una logica e un'organizzazione chiare

😎 Stile di codifica

  • Verifica il rispetto degli standard e delle convenzioni di codifica
  • Verifica che la formattazione e l'indentazione siano coerenti

💡 Denominazione chiara

  • Assicurati che variabili, funzioni e classi abbiano nomi descrittivi e significativi che ne riflettano lo scopo

🤝 Documentazione e commenti adeguati

  • Verifica che il codice sia correttamente documentato con commenti inline

👩‍💻 Struttura e progettazione del codice

  • Valuta la struttura del codice in termini di modularità e rispetto dei principi di progettazione

💪🏻 Prestazioni ed efficienza

  • Valuta il codice per individuare eventuali problemi di prestazioni
  • Assicurati che soddisfi i requisiti di efficienza

🧑🏼‍🏭 Gestione degli errori e registrazione

  • Verifica che siano in atto pratiche adeguate di gestione degli errori e di registrazione per gestire gli errori in modo corretto e facilitare il debug

🥅 Sicurezza

  • Assicurati che il codice sia sicuro dalle vulnerabilità più comuni

🛜 Copertura dei test

  • Verifica i casi limite e gli scenari di errore
  • Garantisci una copertura di test adeguata con test unitari e test di integrazione

🌀 Riutilizzabilità del codice e principio DRY

  • Verifica che il codice non sia ripetitivo e che sia riutilizzabile

✍🏼 Dipendenze e librerie di terze parti

  • Assicurati che le dipendenze e le librerie siano aggiornate

CI/CD e preparazione alla distribuzione

  • Verifica che il codice funzioni in tutti gli ambienti e sia pronto per la distribuzione

Ora esaminiamo ciascuno di questi passaggi in dettaglio: 🔍

Fase 1: Requisiti delle funzionalità

Prima di controllare il codice, verifica che soddisfi i requisiti delle funzionalità specificati e che rispetti tutte le user story o i ticket. Puoi anche utilizzare i vari moduli disponibili per i team di sviluppo software per raccogliere dati dal tuo team, dai clienti o dagli utenti. Ciò garantisce che il codice sia in linea con gli obiettivi del progetto e con le funzionalità previste.

Esempio:

Se una richiesta pull (PR) aggiunge un nuovo endpoint API, controlla l'issue o la user story correlata per confermarne la necessità e la funzionalità

Se stai implementando una nuova funzionalità di ricerca, verifica che supporti tutti i filtri di ricerca specificati e che restituisca i risultati corretti in base agli input degli utenti

Fase 2: Leggibilità del codice

Il codice deve essere pulito, ben organizzato e di facile comprensione. Verifica che il flusso della logica sia naturale e che i commenti e la documentazione siano utilizzati in modo appropriato.

Gli algoritmi complessi dovrebbero essere suddivisi in funzioni chiare e gestibili, corredate da commenti descrittivi che ne spieghino lo scopo. Con l'aiuto di strumenti di sviluppo software efficienti, potrai tenere sotto controllo il progetto.

⚡️Suggerimento:

  • Utilizza un'indentazione e uno spazio uniformi
  • Mantieni le funzioni e i metodi brevi e incentrati su un'unica attività

Fase 3: Stile di codifica

Verifica che il codice rispetti gli standard e le convenzioni di codifica stabiliti, compresa la corretta indentazione, spaziatura e posizionamento delle parentesi. Questa coerenza aiuta a mantenere un codice uniforme e facilita la collaborazione e la revisione da parte degli sviluppatori.

Tutte le variabili e le funzioni devono essere formattate secondo la guida di stile del team. Ciò evita differenze inutili tra i file.

⚡️Suggerimento:

  • In Python, segui gli standard PEP 8
  • In JavaScript, segui le regole di formattazione di ESLint o Prettier

Fase 4: Denominazione chiara

I nomi sono importanti: devono essere descrittivi e significativi. Assicurati che variabili, funzioni e classi abbiano nomi che ne trasmettano lo scopo e la funzionalità.

⚡️Suggerimento: usa nomi di variabili significativi (come userEmail invece di ue)

Ad esempio, una funzione che calcola i punteggi degli utenti dovrebbe essere denominata calculateUserScores anziché calcScores, in modo da renderne immediatamente chiaro lo scopo.

Fase 5: Documentazione e commenti adeguati

Il codice è ben documentato con commenti significativi? Una buona documentazione aiuta i futuri sviluppatori a comprendere e modificare il codice.

⚡️Suggerimento: usa stringhe di documentazione significative e commenti inline

Esempio

Fase 6: Struttura e progettazione del codice

Valuta la modularità del codice e il rispetto dei principi di progettazione, come il principio della responsabilità singola e l'analisi orientata agli oggetti.

⚡️Principio della responsabilità singola (SRS): Non assegnare più di una responsabilità a una singola classe o funzione; rifattorizza in classi e funzioni separate.

Ad esempio, se il codice gestisce l'autenticazione degli utenti e l'elaborazione dei dati, valuta la possibilità di rifattorizzarlo in moduli separati per migliorarne la chiarezza e la manutenibilità.

Fase 7: Prestazioni ed efficienza

Prestazioni ed efficienza sono essenziali per un codice ottimizzato. Un codice efficiente funziona più velocemente e utilizza meno risorse, rendendo l'applicazione scalabile.

Valuta il codice utilizzando i migliori editor di codice per individuare eventuali problemi di prestazioni, come algoritmi inefficienti o perdite di memoria, e verifica che soddisfi i requisiti di efficienza.

Verifica la presenza di loop non necessari, calcoli ridondanti o operazioni dispendiose.

⚡️Suggerimento: in Python, l'uso dell'elenco è spesso più efficiente dei cicli

Esempio:

Codice inefficiente ⤵️

Codice ottimizzato ⤵️

my_list = [x for x in my_list if x not in arr]

Fase 8: Gestione degli errori e registrazione

La gestione degli errori e la registrazione degli stessi consistono nell'avere un piano per gli imprevisti. Verifica che il codice includa una solida gestione degli errori per gestire con eleganza i potenziali problemi e registrare gli eventi importanti a fini di debug.

Il tuo codice dovrebbe essere in grado di gestire input non validi o connessioni al database non riuscite senza andare in crash e fornire messaggi di errore utili per la risoluzione dei problemi.

⚡️Suggerimento: registrare messaggi di errore specifici aiuta a risolvere rapidamente i problemi.

Esempio:

🚫 Gestione errata degli errori (nasconde gli errori)

Buona gestione degli errori (registra dettagli utili)

try { processOrder();} catch (errore) { console.error(`Elaborazione dell'ordine non riuscita: ${errore.message}`);}

Fase 9: Sicurezza

Ora verifica la sicurezza del codice rispetto alle vulnerabilità più comuni. Il codice sicuro garantisce la sicurezza contro SQL injection, XSS, CSRF e fughe di dati.

⚡️Suggerimento: l'uso di query parametrizzate previene l'SQL injection.

🚫 Vulnerabile agli attacchi SQL injection

Utilizza le istruzioni preparate

Fase 10: Copertura dei test

Assicurati che il codice abbia una copertura di test adeguata, compresi i test unitari e di integrazione, e verifica i casi limite e gli scenari di errore.

I test dovrebbero includere scenari per input validi e non validi e potenziali punti di errore, in modo da garantire una verifica completa della funzionalità del codice. I test assicurano che il codice funzioni correttamente e prevengono le regressioni.

⚡️Suggerimento:

  • Assicurati che il nuovo codice non comprometta i test esistenti (esegui test automatizzati)
  • Assicurati che i casi di test coprano tutti gli input previsti

Fase 11: Riutilizzabilità del codice e principio DRY

Verifica se il codice evita duplicazioni e favorisce il riutilizzo. DRY (Don’t Repeat Yourself) riduce lo sforzo richiesto per la manutenzione e semplifica gli aggiornamenti futuri.

⚡️Suggerimento: rifattorizzare il codice ripetitivo in una funzione ne migliora la riutilizzabilità.

🚫 Codice ripetuto

Codice rifattorizzato

Fase 12: Dipendenze e librerie di terze parti

Le librerie obsolete possono introdurre vulnerabilità di sicurezza. Non utilizzare mai una libreria vecchia e non aggiornata.

Verifica che le dipendenze siano aggiornate e necessarie e cerca eventuali patch di sicurezza.

⚡️Suggerimento: esegui questo codice rispettivamente per i progetti Javascript e Python

Fase 13: CI/CD e preparazione alla distribuzione

Il codice funzionerà in staging, produzione e diversi ambienti? Garantire la compatibilità con pipeline DevOps, ambienti cloud e database previene gli errori di distribuzione.

⚡️Suggerimento:

  • Controlla le variabili d'ambiente invece di hardcodare le credenziali
  • Verifica che i test CI/CD siano stati superati prima di unire la PR

Seguendo questi passaggi, la tua lista di controllo per la revisione del codice guiderà il tuo team nel garantire un codice di alta qualità e un esito positivo dell'integrazione nel tuo progetto.

⚡️⚡️ Suggerimento bonus: Cose da verificare prima di approvare definitivamente il codice

  • I feedback precedenti sono stati presi in considerazione
  • I test unitari e di integrazione sono chiari
  • La documentazione è stata aggiornata
  • Tutti i suggerimenti e i problemi sono stati registrati come commenti
  • Il codice si adatta allo schermo di un laptop da 14 pollici senza bisogno di scorrere orizzontalmente

Migliori pratiche per la revisione del codice

Oltre alla lista di controllo, ecco alcune best practice che migliorano l'efficacia delle revisioni del codice:

1. Esamina le modifiche piccole e frequenti

Le PR più piccole sono più facili da revisionare, riducendo il carico cognitivo e migliorando la qualità del feedback.

Best practice:

  • Incoraggia le PR incrementali (ad es. 200–400 righe invece di oltre 1.000)
  • Utilizza i rami di funzionalità ed esegui frequentemente l'unione per evitare revisioni di grandi dimensioni e complesse

2. Fornisci un feedback costruttivo e concreto

Le revisioni del codice dovrebbero aiutare gli sviluppatori a migliorare, non scoraggiarli.

Best practice:

  • Usa suggerimenti invece di critiche, ad esempio: “Valuta di rifattorizzare questo codice in una funzione separata per una migliore leggibilità”
  • Utilizza esempi di codice nei feedback per chiarire i suggerimenti

In qualità di revisore, trova qualcosa che ti piace nella PR e commenta anche quello. Soprattutto se si tratta di qualcosa su cui lo stesso autore ha già ricevuto feedback in precedenza. Un semplice "ottimo lavoro, ti sei ricordato di fornire una stringa di motivazione alla chiamata del metodo di asserzione!" da parte di un autore senior a uno junior offre un grande aumento di fiducia e aiuta a garantire che il feedback "resti impresso".

In qualità di revisore, trova qualcosa che ti piace nella PR e commenta anche quello. Soprattutto se si tratta di qualcosa su cui lo stesso autore ha già ricevuto feedback in precedenza. Un semplice "ottimo lavoro, ti sei ricordato di fornire una stringa di motivazione alla chiamata del metodo di asserzione!" da parte di un autore senior a uno junior offre un grande aumento di fiducia e aiuta a garantire che il feedback "resti impresso".

3. Utilizza una combinazione di revisioni automatizzate e manuali

L'automazione individua gli errori di sintassi, mentre le revisioni manuali si concentrano sulla logica e sulla manutenibilità.

Best practice:

  • Utilizza i linter (ESLint, Pylint, ecc.) e gli strumenti di analisi statica prima di inviare le PR
  • Concentra le revisioni manuali sulla logica aziendale, sulla sicurezza e sui casi limite

4. Alternare i revisori per evitare parzialità

Avere diversi revisori garantisce prospettive diverse ed evita la creazione di silos di conoscenza.

Best practice:

  • Utilizza la rotazione dei revisori per effettuare la distribuzione equa delle attività di revisione
  • Nei progetti critici, richiedi almeno due approvazioni prima di unire i file

5. Trova il giusto equilibrio tra rapidità e accuratezza

Revisioni troppo rapide potrebbero trascurare alcuni problemi, mentre revisioni troppo lente rallentano lo sviluppo.

Best practice:

  • Stabilisci uno SLA per le revisioni del codice (ad es. revisione entro 24-48 ore)
  • Utilizza strumenti asincroni come i commenti di GitHub per le discussioni, invece di lunghe riunioni

6. Impara dalle revisioni precedenti

Problemi ricorrenti indicano la necessità di una formazione migliore o di miglioramenti nei processi.

Best practice:

  • Tieni aggiornata una knowledge base o un registro dei problemi ricorrenti emersi dalle revisioni precedenti
  • Promuovi sessioni di apprendimento tra colleghi per discutere delle best practice

Semplifica la revisione del codice e la documentazione con ClickUp

Un sondaggio condotto da Gitlab ha identificato le revisioni del codice come la terza causa principale di burnout degli sviluppatori, dopo gli orari di lavoro prolungati e le scadenze serrate. Pertanto, è importante disporre di una lista di controllo dettagliata per la revisione del codice e di una soluzione di gestione dei processi che contribuisca ad accelerare il processo di revisione.

ClickUp, uno strumento di project management, offre soluzioni su misura in grado di migliorare l'intero processo di revisione del codice. Ad esempio, utilizzando ClickUp Docs, puoi creare una lista di controllo personalizzata per la revisione del codice, monitorare lo stato delle revisioni e gestire le revisioni in un unico posto.

Le liste di controllo delle attività di ClickUp sono il modo più semplice per creare e gestire liste di controllo per la revisione del codice. Le liste di controllo sono essenzialmente semplici elenchi di cose da fare all'interno di un'attività: gli elementi sono terminati o non terminati.

Lista di controllo delle attività di ClickUp
Assegna la titolarità delle varie fasi della revisione del codice a specifici membri del team con le liste di controllo delle attività di ClickUp

Puoi utilizzare le liste di controllo delle attività di ClickUp per effettuare il monitoraggio di ogni fase della revisione del codice. Organizza facilmente le fasi di revisione utilizzando la funzione drag-and-drop e aggiungi gli assegnatari a ciascuna fase, in modo da sapere chi è incaricato.

💡Suggerimento da esperto: puoi anche creare liste di controllo personalizzate per la revisione del codice e salvarle come modelli di liste di controllo di ClickUp. Diversi team di sviluppo all'interno di un'organizzazione possono utilizzare lo stesso modello di lista di controllo, garantendo così la coerenza nelle pratiche di revisione del codice.

Modelli di liste di controllo di ClickUp
Crea liste di controllo utilizzabili da più team di sviluppo e salvale come modelli in ClickUp

Crea modelli di liste di controllo per la revisione del codice con ClickUp

ClickUp offre modelli gratuiti pensati per semplificare diversi processi di sviluppo software, tra cui la revisione del codice. Un'opzione di spicco è il modello di ClickUp per il monitoraggio di bug e problemi.

Questo modello ti aiuta a effettuare il monitoraggio e la gestione efficiente di bug e problemi durante tutto il processo di revisione del codice, rendendo più facile tenere sotto controllo le correzioni critiche e garantire la qualità del codice.

Semplifica il tuo approccio alla revisione del codice grazie al monitoraggio strutturato dei bug con il modello ClickUp per il monitoraggio di bug e problemi

Utilizzando il modello ClickUp per il monitoraggio di bug e problemi, un revisore del codice può:

  • Centralizza le segnalazioni di bug e il monitoraggio dei problemi in un'unica vista organizzata
  • Gestisci e assegna le priorità ai problemi di codice in modo efficiente, assicurandoti che vengano risolti prontamente
  • Assegna i bug agli sviluppatori, effettua il monitoraggio dello stato e controlla le correzioni del codice, il tutto all'interno della stessa piattaforma

Per migliorare ulteriormente la tua lista di controllo per la revisione del codice, puoi aggiungere stati personalizzati come In revisione, Risolto e Riaperto e campi personalizzati quali Gravità del bug, Sviluppatore assegnato, Scadenza per la correzione e Aggiornamenti di stato. In questo modo, otterrai una panoramica completa dei progressi del tuo team e ti assicurerai che nessun bug sfugga al controllo.

Altre funzionalità/funzioni di ClickUp per i team Agile

ClickUp offre anche una serie di strumenti progettati specificamente per supportare i team Agile. ClickUp Agile Project Management aiuta i team a pianificare, monitorare e gestire gli sprint, consentendo una collaborazione senza intoppi e cicli di consegna più rapidi. Nell'ambito del processo di testing Agile, può anche aiutare a condurre revisioni del codice.

Agile project management with ClickUp
Semplifica il tuo flusso di lavoro Agile con il project management Agile di ClickUp

Con il project management agile di ClickUp, puoi:

  • Organizza sprint, backlog e attività in un unico spazio centrale
  • Dai priorità alle attività e effettua il monitoraggio dello stato di avanzamento degli sprint con bacheche Kanban personalizzabili o viste Elenco
  • Collabora con il tuo team in tempo reale utilizzando funzionalità/funzioni come commenti, menzioni e allegati di file
  • Ottieni informazioni approfondite con i dashboard di ClickUp, che offrono una panoramica delle metriche chiave come la velocità, il completamento delle attività e le prestazioni del team
  • Aumenta la produttività con ClickUp Brain, che offre suggerimenti basati sull'intelligenza artificiale per migliorare i flussi di lavoro e automatizzare le attività ripetitive
Il processo di configurazione della revisione del codice in ClickUp, spiegato da ClickUp Brain
ClickUp Brain può guidarti nel processo di impostazione delle revisioni del codice in ClickUp!

Con questo software, puoi garantire sprint più fluidi, una migliore collaborazione e iterazioni di prodotto più veloci, il tutto mantenendo il tuo team allineato alle migliori pratiche Agile. Indipendentemente dalla configurazione del tuo flusso di lavoro, ClickUp ha la soluzione perfetta per rendere lo sviluppo e la distribuzione del software il più semplici possibile!

Garantisci la qualità del codice e l'efficienza degli sviluppatori con ClickUp

I team di sviluppatori possono migliorare la collaborazione, ridurre gli errori e mantenere un'elevata qualità del codice seguendo una lista di controllo per la revisione del codice dettagliata e ben strutturata, abbinata agli strumenti giusti.

Tuttavia, una lista di controllo come questa dovrebbe evolversi insieme al tuo progetto, adattandosi ai nuovi requisiti e alle best practice. Le potenti funzionalità/funzioni e i modelli personalizzabili di ClickUp semplificano questo processo, rendendo le revisioni del codice più efficienti e gestibili.

Automatizzando le attività e centralizzando il feedback, ClickUp aiuta a mantenere la coerenza tra le revisioni e aumenta la produttività del team. Prova ClickUp e semplifica oggi stesso il tuo processo di revisione del codice!