Code Review — Cheat Sheet

Tag: code review, git, pull request, clean code, refactoring, quality assurance

Livello: intermedio

TL;DR: Best practice, criteri di valutazione e gestione efficace di Pull Request e revisione collaborativa del codice.

Concetti chiave

Identificare bug logici, falle di sicurezza e regressioni prima del merge.

Verificare la leggibilità, aderenza agli standard architetturali e manutenibilità.

Mantenere le Pull Request piccole, focalizzate su un solo obiettivo e rapide da revisionare.

Distinguere chiaramente tra problemi bloccanti e suggerimenti opzionali (nitpick).

Automatizzare formattazione, linting e test via CI per concentrare la review sulla logica.

Fornire feedback costruttivo, chiaro, orientato al codice e mai alla persona.

Validare la presenza di test automatizzati (unitari e di integrazione) a corredo delle modifiche.

Controllare la gestione dei casi limite, validazione degli input e gestione degli errori.

Domande tipiche e risposte pronte

Q: Cosa cerchi prioritariamente quando fai una code review?R: Controllo prima la correttezza del comportamento di business e i casi limite, poi l'architettura e la sicurezza. Delego la sintassi a linter e CI.

Q: Come ti comporti se sei in disaccordo su un approccio tecnico in una PR?R: Spiego i trade-off oggettivi con esempi pratici sul codice; se non c'è consenso, organizzo un sync rapido o consulto le linee guida del team.

Q: Come gestisci PR molto grandi o complesse?R: Chiedo all'autore di suddividerla in commit atomici o sotto-PR logiche, concentrandomi prima sulle interfacce pubbliche e sui test.

Insidie e errori comuni

Usare la code review per discutere di formattazione o stile invece di affidarsi a strumenti automatici.

Commentare in modo vago senza fornire motivazioni tecniche o alternative pratiche.

Approvare PR enormi superficialmente senza verificare l'impatto architetturale e i corner case.

Trattare le proprie preferenze personali come requisiti bloccanti non negoziabili.

Lasciare PR aperte per giorni bloccando il ciclo di rilascio del team.

Snippet e comandi

# Confrontare le modifiche tra il branch corrente e target prima della PR
git diff main...HEAD

# Ispezionare la lista dei commit atomici inclusi nel branch
git log --oneline main..HEAD

# Visualizzare il riepilogo dei file modificati e lo stat delle righe
git diff --stat main...HEAD

Da ripassare

[ ] Convenzione Conventional Comments per etichettare i feedback (nitpick, issue, question)

[ ] Criteri di sicurezza comuni (OWASP Top 10) applicati alla review

[x] Flussi standard GitHub Flow e GitLab Flow

Jarvis Interviews
Jarvis