{"id":3293,"date":"2021-06-25T13:59:00","date_gmt":"2021-06-25T11:59:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=3293"},"modified":"2021-07-02T17:52:29","modified_gmt":"2021-07-02T15:52:29","slug":"come-arricchire-le-pipeline-di-cd-ci-con-la-static-code-analysis-utilizzando-sonarqube","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/come-arricchire-le-pipeline-di-cd-ci-con-la-static-code-analysis-utilizzando-sonarqube\/","title":{"rendered":"Come arricchire le pipeline di CD\/CI con la static code analysis utilizzando SonarQube"},"content":{"rendered":"\n

Abbiamo pi\u00f9 volte trattato le pipeline di continuous delivery nel corso degli anni; questo perch\u00e9 crediamo davvero che disporre di un processo automatico, affidabile e completamente gestito per testare e distribuire il codice aiuti ad aumentare la qualit\u00e0 e la quantit\u00e0 del codice prodotto.<\/p>\n\n

Configurare una buona pipeline di CI\/CD \u00e8 un aspetto fondamentale per accelerare la distribuzione del software senza sacrificarne la qualit\u00e0, inoltre \u00e8 imprescindibile includere uno step di static code analysis nelle pipeline per sfruttarne a pieno i vantaggi e le potenzialit\u00e0. <\/p>\n\n

Uno strumento di static code analysis ispeziona la codebase durante il ciclo di sviluppo ed \u00e8 in grado di identificare bug, vulnerabilit\u00e0 e problemi di conformit\u00e0 senza eseguire effettivamente il codice sorgente. <\/p>\n\n

L’analisi del codice pu\u00f2 aiutare a garantire che il software sia sicuro, affidabile e conforme agli standard di qualit\u00e0 e stile definiti a livello aziendale.<\/p>\n\n

Che cos’\u00e8 la static code analysis?<\/h2>\n\n

La static code analysis \u00e8 una pratica che consente ai team di sviluppo di rilevare automaticamente potenziali bug, problemi di sicurezza e, pi\u00f9 in generale, difetti nel codice sorgente di una o pi\u00f9 applicazioni. Pertanto, possiamo vedere l’analisi statica come un ulteriore processo di revisione del codice automatizzato. Esaminiamo questa analogia pi\u00f9 in dettaglio.<\/p>\n\n

Il processo di revisione del codice, o code review, \u00e8 probabilmente il modo migliore per garantire la qualit\u00e0 del codice prodotto da un team di sviluppo. Durante una code review, una coppia di sviluppatori esamina il codice con l’obiettivo preciso di migliorarlo e di individuare pratiche pericolose sia dal punto di vista della manutenibilit\u00e0 che della sicurezza. <\/p>\n\n

Durante il processo di revisione, l’autore del codice non dovrebbe spiegare come funzionano determinate parti del programma in modo che il revisore non sia prevenuto sul suo giudizio. Inoltre, il codice dovrebbe essere chiaro, semplice, e altamente gestibile; la complessit\u00e0 dovrebbe essere mitigata dall’astrazione e dall’incapsulamento. Infine, il codice dovrebbe essere ritenuto sufficientemente chiaro, gestibile e sicuro, da entrambi i programmatori per superare la revisione.<\/p>\n\n

Le code review sono particolarmente efficaci perch\u00e9 \u00e8 pi\u00f9 facile per uno sviluppatore, individuare bug, code smell, e suggerire miglioramenti al codice prodotto da qualcun altro, piuttosto che sul suo lavoro, per il quale si ha un forte bias. <\/p>\n\n

La pratica delle review dovrebbe essere eseguita con la maggiore frequenza possibile; tuttavia, l’attivit\u00e0 richiede molto tempo e di conseguenza risulta molto costosa sia in termini di tempo che di denaro.<\/p>\n\n

Un modo eccellente per aumentare la frequenza delle revisioni del codice consiste quindi nell’includere uno step di code review automatica all\u2019interno delle pipeline utilizzando uno strumento di static code analysis.<\/p>\n\n

Strumenti e soluzioni di static code analysis<\/h2>\n\n

Esistono strumenti e soluzioni per implementare la static code analysis in grado di scansionare automaticamente la codebase e generare report accurati sulle condizioni del codice che sono rivolti agli sviluppatori. Tali strumenti sono solitamente facili da integrare nelle pipeline CD\/CI; solitamente il comando di scansione restituisce un exit code mediante il quale \u00e8 possibile determinare se il codice \u00e8 sufficientemente buono o se non supera l’analisi statica.<\/p>\n\n

Naturalmente, una soluzione completamente automatizzata non pu\u00f2 sostituire una revisione completa del codice eseguita da uno o pi\u00f9 sviluppatori. Tuttavia, l’aumento del rapporto tra la frequenza dell’analisi del codice e l’impatto relativamente economico sul prezzo complessivo rende l’aggiunta di uno step di analisi alla pipeline un modo efficiente per migliorare la qualit\u00e0 e la sicurezza del codice.<\/p>\n\n

Aggiungere questo step non sostituisce le code review, ma la sua aggiunta porta sicuramente benefici a buon mercato.<\/p>\n\n