{"id":31346,"date":"2025-01-09T11:11:45","date_gmt":"2025-01-09T10:11:45","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=31346"},"modified":"2025-01-21T11:51:25","modified_gmt":"2025-01-21T10:51:25","slug":"come-capire-se-ci-sai-fare-facciamo-code-review","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/","title":{"rendered":"Come capire se ci sai fare: facciamo code review"},"content":{"rendered":"\n<p>La code review, o revisione del codice, <strong>\u00e8 uno dei momenti pi\u00f9 delicati e importanti di un progetto software<\/strong>. Qualsiasi progetto software che abbiamo sviluppato o svilupperemo nel tempo \u00e8 stato o sar\u00e0 sottoposto a una<strong> revisione del codice.<\/strong><\/p>\n\n\n\n<p>Non \u00e8 immaginabile un codice scritto da chiunque non subisca <strong>mutazioni <\/strong>nel tempo. Anche se pu\u00f2 valere per singole parti di un progetto, se guardiamo l&#8217;interezza di un progetto software,<strong> la code review diventa un passaggio significativo fra rimanere piccoli e giocare con le bambole, o uscire allo scoperto e diventare uomini.<\/strong><\/p>\n\n\n\n<p>Questo passaggio \u00e8 quindi <strong>fondamentale <\/strong>per garantire la <strong>qualit\u00e0 <\/strong>del codice, per evitare che <strong>errori possano compromettere il funzionamento del software <\/strong>e per allargare la conoscenza del codice a tutto il team. S\u00ec, perch\u00e9 far evolvere il team \u00e8 un aspetto pi\u00f9 importante che sublimare il proprio ego nel guardare una decina di righe che solo chi le ha scritte pu\u00f2 capire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-la-code-review-da-fastidio\">La code review d\u00e0 fastidio<\/h2>\n\n\n\n<p>Esiste per\u00f2 un problema di fondo: <strong>ai programmatori la code review infastidisce<\/strong>, non piace, viene ritenuta <strong>superflua <\/strong>o <strong>sbagliata <\/strong>se fatta da altri e deve essere fatta e decisa solo da loro.<\/p>\n\n\n\n<p>Per alcuni poi \u00e8 come perdere un figlio: <em>&#8220;Quel codice era scritto in quel modo per una ragione ben precisa: Mario non voleva che nessuno ci mettesse le mani, ma ora che si \u00e8 licenziato non si capisce pi\u00f9 nulla.&#8221;<\/em><\/p>\n\n\n\n<p>Un buon momento per fare code review <strong>\u00e8 quando si corregge un bug<\/strong>. Occorre per\u00f2 scardinare l&#8217;approccio che viene spesso sposato dai programmatori, che tendono ad essere <strong>chirurgici <\/strong>e a risolvere<strong> la singola segnalazione<\/strong>, senza sfruttare il pensiero olistico.<\/p>\n\n\n\n<p><em>&#8220;Mi hanno segnalato che cliccando su un pulsante c&#8217;\u00e8 un errore, faccio in modo che non ci sia.&#8221;<\/em><\/p>\n\n\n\n<p>In realt\u00e0, <strong>il problema potrebbe essere molto pi\u00f9 profondo<\/strong> e richiedere una riflessione pi\u00f9 ampia. Ci dovremmo porre il problema di <strong>come mai quel pulsante \u00e8 stato cliccato,<\/strong> se \u00e8 stato cliccato da un utente, se \u00e8 stato cliccato da un utente che non avrebbe dovuto cliccarlo, se \u00e8 stato cliccato da un utente che non avrebbe dovuto cliccarlo in quel momento, se \u00e8 stato cliccato da un utente che non avrebbe dovuto cliccarlo in quel momento e in quel contesto.<\/p>\n\n\n\n<p>Volendo allargare il pensiero,<strong> potremmo anche chiederci se il problema non \u00e8 esteso ad altri pulsanti<\/strong>, se e come viene segnalato, se ha senso avere quel pulsante o quei pulsanti che fanno quell&#8217;operazione, se l&#8217;operazione che fa quel pulsante \u00e8 necessaria, se l&#8217;operazione che fa quel pulsante \u00e8 necessaria in quel contesto.<\/p>\n\n\n\n<p>Allargare il contesto per\u00f2 vuol dire <strong>spendere tempo<\/strong>, <strong>impiegare risorse<\/strong>, <strong>mettere in discussione il proprio lavoro e quello degli altri<\/strong>, vuol dire mettere in discussione il proprio ego e quello degli altri, ma cos\u00ec facendo<strong> si migliora il codice, si migliora il sistema, si migliora il team.<\/strong><\/p>\n\n\n\n<p>Occorre quindi non guardare la singola segnalazione che ci viene fatta, ma <strong>cercare di capire il contesto<\/strong> in cui \u00e8 stata fatta e se ci sono altre parti di codice che potrebbero essere migliorate.<\/p>\n\n\n\n<p>Il pensiero <strong>olistico<\/strong>, anche nel codice, \u00e8 importante: se non capiamo che una singola modifica ha un impatto su tutto il sistema, non possiamo capire il sistema, se non capiamo il sistema, non possiamo migliorarlo.<\/p>\n\n\n\n<p>Come diceva Platone: <em>&#8220;Il refactoring \u00e8 l&#8217;arte di togliere il male e aggiungere il bene al codice.&#8221;<\/em><\/p>\n\n\n\n<p>Forse l&#8217;autore non era Platone, <strong>ma il concetto \u00e8 chiaro<\/strong>: il codice va migliorato, va reso pi\u00f9 leggibile, pi\u00f9 mantenibile, pi\u00f9 testabile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il codice non usato<\/h2>\n\n\n\n<p>Se avete lavorato sullo stesso progetto per pi\u00f9 di un lustro, la frase: <em>&#8220;Quel codice lo abbiamo scritto per &#8220;Cliente importante&#8221;, che non \u00e8 pi\u00f9 nostro cliente, ma non lo togliamo perch\u00e9 &#8220;potrebbe&#8221; servire&#8221;<\/em> \u00e8 quasi un <strong>mantra <\/strong>che sono sicuro avete sentito almeno una volta.<\/p>\n\n\n\n<p>Stratificare pensieri di questo genere nel corso del tempo porta ad avere <strong>un codice che non si capisce, che non si sa cosa faccia, che non si sa perch\u00e9 lo fa e che non si sa come lo fa<\/strong>: le specifiche erano intrecciate con i bisogni del cliente, con le esigenze del team, con le scelte tecniche del momento.<\/p>\n\n\n\n<p>Nel frattempo,<strong> il codice \u00e8 cambiato, il team \u00e8 cambiato, il cliente \u00e8 cambiato, le esigenze sono cambiate<\/strong>, le scelte tecniche sono cambiate: \u00e8 giusto che il codice cambi o venga rimosso dal progetto. Mantenere codice non usato \u00e8 costoso e col tempo rappresenta un inutile debito tecnico.<\/p>\n\n\n\n<p>Ci sono aziende che hanno capito quanto sia <strong>costoso e inutile<\/strong> mantenere progetti che non vengono pi\u00f9 usati: il codice \u00e8 un costo, non un valore, se non viene usato.<\/p>\n\n\n\n<p>Google, ad esempio, ha una ricca storia di progetti che sono stati abbandonati. Ne potete trovare traccia su <a href=\"https:\/\/en.wikipedia.org\/wiki\/Category:Discontinued_Google_services\">Wikipedia<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Io uso i TAB, chi usa gli spazi non \u00e8 un programmatore bravo<\/h2>\n\n\n\n<p>In una puntata di &#8220;<a href=\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/storie\/il-fallimento-di-juicero-lo-spremifrutta-hi-tech-inutile\/\">Silicon Valley<\/a>&#8220;, il protagonista Richard scopre che la sua fidanzata Winnie utilizza gli spazi al posto dei TAB per indentare il codice e la lascia: \u00e8 un&#8217;esagerazione cinematografica, ma conosco persone che non accetterebbero mai di lavorare con qualcuno che usa gli spazi al posto dei TAB e viceversa.<\/p>\n\n\n\n<p>Scardinare questa abitudine, e lo dice uno che usa gli spazi da quando ha appoggiato l&#8217;indice sulla tastiera, \u00e8 difficile, ma necessario:<strong> il codice deve essere uniforme, deve essere coerente, deve essere leggibile.<\/strong> Avere stili diversi all&#8217;interno del team \u00e8 <strong>controproducente<\/strong>, rallenta il lavoro, aumenta la possibilit\u00e0 di errori, rende difficile la manutenzione.<\/p>\n\n\n\n<p>All&#8217;interno di una code review <strong>\u00e8 necessario discutere anche di queste cose<\/strong>: non si tratta di imporre un proprio stile, ma di trovare un compromesso che possa essere accettato da tutti e possibilmente non sia un peso per nessuno.<\/p>\n\n\n\n<p>Una volta raggiunto un accordo,<strong> \u00e8 importante rispettarlo<\/strong>: se si decide di usare gli spazi al posto dei TAB, non si pu\u00f2 tornare indietro.<\/p>\n\n\n\n<p>Si tratta per\u00f2 di qualcosa <strong>difficile da accettare e da mettere in campo<\/strong>, sia perch\u00e9 alcuni programmatori considerano il codice come un figlio, che non si pu\u00f2 cambiare, sia per il fatto che, anche imponendo uno stile uniforme, prima o poi qualcuno non capir\u00e0 la specifica, altri configureranno l&#8217;IDE in modo sbagliato o perderanno le impostazioni al primo aggiornamento.<\/p>\n\n\n\n<p>In queste situazioni, dove non \u00e8 il linguaggio stesso che ci aiuta a mantenere uno stile uniforme (s\u00ec, ci sono linguaggi che lo fanno per noi in modo assolutamente dittatoriale), <strong>\u00e8 importante utilizzare degli strumenti che ci permettano di automatizzare il pi\u00f9 possibile la formattazione del codice.<\/strong><\/p>\n\n\n\n<p>All&#8217;interno di uno dei progetti pi\u00f9 grossi che seguo, \u00e8 stato deciso di adottare OpenRewrite, uno strumento che riformatta il codice in modo automatico, uniforme e coerente, riducendo le differenze fra diversi stili di programmazione: <strong>uniformare, oltre a rendere il codice pi\u00f9 coerente, velocizza l&#8217;inserimento di nuovi membri nel team e il passaggio di un componente da un team all&#8217;altro.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resistenza al cambiamento<\/h2>\n\n\n\n<p>Anche se la maggior parte dei programmatori \u00e8 d&#8217;accordo sulla necessit\u00e0 di una code review, <strong>spesso si rifiutano di accettare i cambiamenti proposti<\/strong>, un po&#8217; per pigrizia, un po&#8217; per orgoglio, un po&#8217; per abitudine.<\/p>\n\n\n\n<p>Se lavori da anni nello stesso modo, e funziona,<strong> perch\u00e9 cambiare?<\/strong><\/p>\n\n\n\n<p><em>&#8220;Il mio codice nasce perfetto&#8221;<\/em>.<\/p>\n\n\n\n<p><strong>Purtroppo no: non \u00e8 cos\u00ec.<\/strong> All&#8217;interno di un team, l&#8217;aspetto che deve prevalere \u00e8 la lettura del codice da parte di tutti, deve prevalere la facilit\u00e0 di inserimento di una nuova risorsa, deve prevalere la semplicit\u00e0 di modifica anche dopo mesi che non si mette mano ad alcune righe.<\/p>\n\n\n\n<p>Non importa quindi se l&#8217;IDE che usi formatta il codice in un certo modo, non importa se ti \u00e8 sempre piaciuto dichiarare le variabili con &#8220;_&#8221;, aderire ad uno standard diffuso, spontaneamente o tramite delle automazioni, \u00e8 un vantaggio, anche se in prima battuta pu\u00f2 sembrare un peso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Clean Code<\/h2>\n\n\n\n<p>Uno degli obiettivi che dovrebbe avere una code review \u00e8 quello di scrivere <strong>codice pulito, leggibile e mantenibile.<\/strong><\/p>\n\n\n\n<p>A volte mi sono trovato di fronte alla scelta se mantenere del codice che funzionava, o smontarlo perch\u00e9, pur superando in modo eccellente qualsiasi test funzionale, era scritto in modo oscuro, difficile da leggere e da mantenere, e ogni volta che mettevo una persona davanti a quel codice, la sua espressione era sempre la stessa: <em><strong>&#8220;Non capisco cosa fa&#8221;.<\/strong><\/em><\/p>\n\n\n\n<p>A volte crediamo che<strong> usare l&#8217;ultima sintassi proposta da un linguaggio sia la soluzione a tutti i nostri problemi, ma non sempre \u00e8 cos\u00ec.<\/strong> A volte i nuovi costrutti si basano su concetti difficili da comprendere e da spiegare, a volte sono solo zuccherini per farci sentire pi\u00f9 bravi: &#8220;sugar code&#8221; come lo chiamano alcuni.<\/p>\n\n\n\n<p>Non sempre il codice pi\u00f9 compatto e coinciso \u00e8 il migliore:<strong> a volte \u00e8 meglio scrivere 10 righe di codice che fanno quello che devono in modo chiaro e leggibile<\/strong>, piuttosto che una sola riga che fa la stessa cosa, ma che nessuno capisce, per guadagnare nulla a livello prestazionale e funzionale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automatizzare il possibile<\/h2>\n\n\n\n<p>Stranamente, i programmatori accettano di buon grado qualcosa che viene proposto da un <strong>programma<\/strong>, rispetto a quanto viene proposto da qualcuno all&#8217;interno del team.<\/p>\n\n\n\n<p>Se anche nel vostro team c&#8217;\u00e8 lo stesso clima, potete proporre l&#8217;introduzione, all&#8217;interno della pipeline di progetto (sperando ne abbiate una), di processi di normalizzazione di codice e analisi statica.<\/p>\n\n\n\n<p>I primi serviranno a diminuire la differenza di stile fra un programmatore e l&#8217;altro, gli altri serviranno a suggerire modifiche, a farci capire dove sono nascosti bug, dove mancano dei test, dove la complessit\u00e0 cognitiva \u00e8 troppo alta o <strong>dove possiamo ridurre il codice, senza perdere di chiarezza o efficacia.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ma a me non interessa<\/h2>\n\n\n\n<p>Ogni tanto passo il mio tempo libero a studiare progetti di altri programmatori, faccio girare qualche analizzatore e provo a correggere un po&#8217; di codice:<strong> \u00e8 un buon allenamento e mi permette di vedere come altri affrontano i problemi o sottovalutano le conseguenze del loro codice.<\/strong><\/p>\n\n\n\n<p>Durante queste scorribande, mi sono imbattuto<strong> in approcci completamente differenti<\/strong> da parte di singoli programmatori o team di programmatori ai quali ponevo le mie Pull Request.<\/p>\n\n\n\n<p>Fra tutti i progetti che ho analizzato, vorrei parlare di<strong> due che mi hanno particolarmente colpito <\/strong>per come il team ha gestito il mio contributo.<\/p>\n\n\n\n<p>La prima Pull Request riguarda il JDK di OpenJDK. Mi sono accorto che, per distrazione, 82 sorgenti contenevano dei doppi &#8220;;&#8221; alla fine di una riga.<\/p>\n\n\n\n<p>Capite che non si tratta di qualcosa di <strong>importante<\/strong>, possiamo anche dire che si tratta di qualcosa di trascurabile, ma ho deciso di fare una Pull Request per correggere il problema e capire come si sarebbe comportato il team di sviluppo.<\/p>\n\n\n\n<p>Potete trovare la PR a <a href=\"https:\/\/github.com\/openjdk\/jdk\/commit\/ccad39237ab860c5c5579537f740177e3f1adcc9\">questo indirizzo.<\/a><\/p>\n\n\n\n<p>L&#8217;approccio, a mio avviso, \u00e8 stato <strong>interessante<\/strong>: prima di tutto sono stati coinvolti nell&#8217;analisi della modifica <strong>8 persone<\/strong>, essendo le modifiche orizzontali a tanti package di Java. Dopo una discussione <strong>orizzontale <\/strong>di vari maintainer e aver constatato che il problema era reale, <strong>\u00e8 stata aperta una <a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8282657\">issue<\/a>.<\/strong><\/p>\n\n\n\n<p>Si \u00e8 anche discusso di una possibile modifica ai tool di build, che gi\u00e0 rimuovevano gli spazi a fine riga, introducendo la rimozione dei doppi caratteri &#8220;;&#8221;.<\/p>\n\n\n\n<p>Questo approccio denota<strong> un team che analizza ogni singola modifica<\/strong>, che discute e che cerca di capire se la modifica proposta \u00e8 effettivamente utile o se \u00e8 solo un capriccio di qualcuno. In questo caso, hanno capito che si trattava di una modifica <strong>banale<\/strong>, ma orientata alla <strong>pulizia <\/strong>del codice, e per questo \u00e8 stata accettata.<\/p>\n\n\n\n<p>Un secondo caso invece coinvolge <strong>un tool di sicurezza realizzato da un singolo maintainer,<\/strong> messo anch&#8217;esso su GitHub. In quel caso, <strong>avevo proposto una PR molto pi\u00f9 seria.<\/strong> Era presente del codice <strong>ridondante<\/strong>, venivano utilizzate classi sincronizzate in processi nei quali non serviva una sincronizzazione, alcune risorse erano aperte senza una chiusura esplicita e cos\u00ec via.<\/p>\n\n\n\n<p>Si trattava quindi di una <strong>modifica orientata a migliorare la qualit\u00e0 del codice <\/strong>e a <strong>ridurre la possibilit\u00e0 di errori,<\/strong> non qualcosa di banale come la rimozione di un carattere.<\/p>\n\n\n\n<p>Oltre a questo, il passaggio a oggetti non sincronizzati portava a un aumento prestazionale nell&#8217;intorno del 20%: tutto questo <strong>senza snaturare il codice<\/strong>, ma solo utilizzando i giusti costrutti e, a parit\u00e0 di interfacce, le giuste classi.<\/p>\n\n\n\n<p>In questo caso, ero convinto che<strong> non ci fossero problemi a inserire questo codice nel progetto,<\/strong> ma la risposta \u00e8 stata <strong>negativa<\/strong>.<\/p>\n\n\n\n<p>Il maintainer ha risposto che<strong> non intendeva integrare nel suo codice i suggerimenti <\/strong>che derivavano da un analizzatore sintattico e che potevo usarli sul mio fork e lui non li avrebbe mai integrati.<\/p>\n\n\n\n<p><em>&#8220;Se non ti piace il mio codice, fai il tuo fork e modificalo come vuoi&#8221;.<\/em><\/p>\n\n\n\n<p><strong>Questa \u00e8 la classica risposta di chi non vuole cambiare<\/strong>, di chi non vuole accettare che il suo codice possa essere migliorato, di chi non vuole accettare che il suo codice possa essere cambiato da altri, nonostante le modifiche possano migliorare la leggibilit\u00e0 e portino a tangibili miglioramenti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusione<\/h2>\n\n\n\n<p>Anche quando tutto funziona, <strong>la code review \u00e8 importante:<\/strong> permette di migliorare il progetto, di migliorare il team e tagliare quelli che sono i debiti tecnici.<\/p>\n\n\n\n<p>Diminuire il debito tecnico, avere il coraggio di smontare anche codice funzionante, buttare codice non pi\u00f9 usato, dare ascolto a revisori statici, uniformare lo stile di programmazione, automatizzare il pi\u00f9 possibile la formattazione del codice, sono tutti passaggi che possono migliorare il codice e il team.<\/p>\n\n\n\n<p><strong>Non abbiate paura di mettere in discussione quello che \u00e8 stato scritto in passato<\/strong> e allargate la visione quando dovete mettere le mani al codice: non guardate solo la singola modifica, ma cercate di capire il contesto in cui \u00e8 stata fatta e se ci sono altre parti di codice che potrebbero essere migliorate.<\/p>\n\n\n\n<p>Un prodotto migliore passa attraverso tanti piccoli passi e <strong>non \u00e8 detto che<\/strong>, pur avendo centinaia di test funzionanti,<strong> il codice sia perfetto<\/strong>: la code review \u00e8 un passaggio <strong>fondamentale <\/strong>per garantire la qualit\u00e0 del codice e per evitare che errori possano compromettere il funzionamento del software.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La code review, o revisione del codice, \u00e8 uno dei momenti pi\u00f9 delicati e importanti di un progetto software. Qualsiasi progetto software che abbiamo sviluppato o svilupperemo nel tempo \u00e8 stato o sar\u00e0 sottoposto a una revisione del codice. Non \u00e8 immaginabile un codice scritto da chiunque non subisca mutazioni nel tempo. Anche se pu\u00f2&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\">Read more<\/a><\/p>\n","protected":false},"author":246,"featured_media":31347,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10263],"tags":[10486,10446,10438],"collections":[11549],"class_list":{"0":"post-31346","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-it","8":"tag-dev-senior","9":"tag-github-it","10":"tag-sviluppo-software-it","11":"collections-il-meglio-della-settimana","12":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Come capire se ci sai fare: facciamo code review<\/title>\n<meta name=\"description\" content=\"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come capire se ci sai fare: facciamo code review\" \/>\n<meta property=\"og:description\" content=\"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-09T10:11:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-21T10:51:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Matteo Baccan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matteo Baccan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\"},\"author\":{\"name\":\"Matteo Baccan\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\"},\"headline\":\"Come capire se ci sai fare: facciamo code review\",\"datePublished\":\"2025-01-09T10:11:45+00:00\",\"dateModified\":\"2025-01-21T10:51:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\"},\"wordCount\":2235,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp\",\"keywords\":[\"dev senior\",\"GitHub\",\"sviluppo software\"],\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\",\"name\":\"Come capire se ci sai fare: facciamo code review\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp\",\"datePublished\":\"2025-01-09T10:11:45+00:00\",\"dateModified\":\"2025-01-21T10:51:25+00:00\",\"description\":\"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp\",\"width\":1792,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come capire se ci sai fare: facciamo code review\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\",\"name\":\"Matteo Baccan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"caption\":\"Matteo Baccan\"},\"description\":\"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \\\"realistic dreamer\\\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \\\"Never stop learning, because life never stops teaching.\\\"\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come capire se ci sai fare: facciamo code review","description":"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/","og_locale":"en_US","og_type":"article","og_title":"Come capire se ci sai fare: facciamo code review","og_description":"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-01-09T10:11:45+00:00","article_modified_time":"2025-01-21T10:51:25+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp","type":"image\/webp"}],"author":"Matteo Baccan","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Matteo Baccan","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/"},"author":{"name":"Matteo Baccan","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1"},"headline":"Come capire se ci sai fare: facciamo code review","datePublished":"2025-01-09T10:11:45+00:00","dateModified":"2025-01-21T10:51:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/"},"wordCount":2235,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp","keywords":["dev senior","GitHub","sviluppo software"],"articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/","name":"Come capire se ci sai fare: facciamo code review","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp","datePublished":"2025-01-09T10:11:45+00:00","dateModified":"2025-01-21T10:51:25+00:00","description":"La code review \u00e8 essenziale per migliorare la qualit\u00e0 del codice, condividere conoscenze nel team e ridurre il debito tecnico.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp","width":1792,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/come-capire-se-ci-sai-fare-facciamo-code-review\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/"},{"@type":"ListItem","position":3,"name":"Come capire se ci sai fare: facciamo code review"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1","name":"Matteo Baccan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","caption":"Matteo Baccan"},"description":"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \"realistic dreamer\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \"Never stop learning, because life never stops teaching.\"","url":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-600x600.webp","author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/01\/DALL\u00b7E-2025-01-08-15.47.29-A-modern-horizontal-banner-illustrating-the-concept-of-Code-Review.-The-scene-features-a-sleek-collaborative-office-environment-with-two-developers-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_comment_info":0,"uagb_excerpt":"La code review, o revisione del codice, \u00e8 uno dei momenti pi\u00f9 delicati e importanti di un progetto software. Qualsiasi progetto software che abbiamo sviluppato o svilupperemo nel tempo \u00e8 stato o sar\u00e0 sottoposto a una revisione del codice. Non \u00e8 immaginabile un codice scritto da chiunque non subisca mutazioni nel tempo. Anche se pu\u00f2&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/246"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=31346"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31346\/revisions"}],"predecessor-version":[{"id":31355,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/31346\/revisions\/31355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/31347"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=31346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=31346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=31346"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=31346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}