<h2>Cosa include JetBrains Qodana Ultimate?</h2>
<p style="margin-top: 0px; margin-bottom: 0px;"><strong>Analisi di livello IDE</strong> – Esegue le ispezioni dell’IDE JetBrains all’interno delle pipeline CI/CD.<br /><strong>Linter completi per i linguaggi</strong> – Aggiunge l’analisi per Go, JS/TS, PHP, Ruby e Rust.<br /><strong>Controlli di qualità</strong> – Fa fallire le build e registra il debito tecnico esistente.<br /><strong>Quick-Fix</strong> – Suggerisce e applica correzioni automatiche al codice.<br /><strong>Importante</strong> – L’analisi dei taint e la scansione delle vulnerabilità richiedono Ultimate Plus.<br /><strong>Capacità di base</strong> – Dieci linter completi che coprono JVM, JS, Go, PHP.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Quali sono i principali vantaggi di JetBrains Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">JetBrains Qodana Ultimate è una piattaforma di analisi statica che esegue le stesse ispezioni di IntelliJ IDEA, PyCharm e altri IDE JetBrains direttamente all’interno della vostra pipeline CI/CD. Il livello Ultimate aggiunge tutti i linter di produzione e le funzionalità per il team che l’edizione gratuita Community non include.<br /><br /><strong>Ispezioni coerenti</strong> – Stesse regole nell’IDE e nella CI.<br /><strong>Automazione delle correzioni rapide</strong> – Applica le correzioni suggerite senza necessità di riscrittura manuale.<br /><strong>Controllo della baseline</strong> – Distingue i nuovi problemi dal debito tecnico preesistente.<br /><strong>Analisi self-hosted</strong> – Il codice viene analizzato nei propri runner CI.<br /><strong>Ampio supporto CI</strong> – Funziona con GitHub, GitLab, Jenkins, TeamCity.<br /><strong>Integrazione con l’editor</strong> – Risultati della revisione all’interno di IntelliJ, Rider, VS Code.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Cosa fa JetBrains Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">JetBrains Qodana Ultimate esegue le ispezioni statiche del codice dagli IDE JetBrains all’interno della tua pipeline CI/CD, in modo che gli stessi controlli che gli sviluppatori vedono in IntelliJ IDEA o PyCharm vengano eseguiti anche ad ogni push o pull request. La licenza Ultimate attiva i linter completi per la produzione — tra cui Qodana per JS, Go, PHP, Ruby e Rust — che l’edizione Community gratuita non può eseguire. Aggiunge inoltre Quick-Fix, che applica automaticamente le correzioni di codice suggerite invece di limitarsi a segnalarle. Una linea di base consente di accettare i problemi esistenti una volta sola e di far fallire le build solo in presenza di problemi di nuova introduzione. Ciò la rende pratica per applicare uno standard di qualità coerente in tutto il team, anziché fare affidamento sulla configurazione locale di ogni singolo sviluppatore.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">In che modo Qodana Ultimate si differenzia dall’edizione gratuita Community?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">L’edizione Community esegue solo i linter della Community ed è limitata a linguaggi quali Java, Kotlin, Groovy, Python, C, C++, C# e VB.NET. Ultimate aggiunge i linter a pagamento per Go, JavaScript, TypeScript, PHP, Ruby e Rust, oltre a funzionalità che il piano gratuito non include: correzioni automatiche Quick-Fix, copertura del codice e ispezioni di Docker e Kubernetes. Inoltre, la versione Ultimate conserva i dati dettagliati delle analisi storiche per 180 giorni anziché 30 e consente un numero illimitato di team su Qodana Cloud anziché uno solo. Se i vostri repository rientrano nei linguaggi già coperti dalla versione Community, l’aggiornamento vi offre principalmente la funzione Quick-Fix, la copertura del codice e una cronologia dei report più estesa. Per i codebase poliglotti che includono Go, PHP o JavaScript front-end, Ultimate è il piano più economico in grado di analizzarli.</p>
<table style="width: 100%; border-collapse: collapse; background-color: #efefef; margin-top: 15px; margin-bottom: 15px; font-size: 14px; line-height: 1.35;">
<tbody>
<tr><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: left; font-weight: bold; background-color: #dedede;">Funzionalità</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Community</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Ultimate</th><th style="border: 1px solid #ffffff; padding: 9px 8px; text-align: center; font-weight: bold; background-color: #dedede;">Ultimate Plus</th></tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Linter per Go, JS, PHP, Ruby, Rust</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Correzioni automatiche Quick-Fix</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Copertura del codice</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Ispezioni Docker e Kubernetes</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Controllo di qualità e baseline</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Analisi dei taint (OWASP)</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Verifica delle vulnerabilità</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Audit delle licenze</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Accesso unico (Single Sign-On)</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #d9534f; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✕</span></td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;"><span style="color: #32a852; font-size: 24px; font-weight: 800; line-height: 1; display: inline-block; transform: translateY(1px);">✓</span></td>
</tr>
<tr>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: left; font-weight: bold; vertical-align: middle;">Archiviazione dei dati storici</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">30 giorni</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">180 giorni</td>
<td style="border: 1px solid #ffffff; padding: 8px; text-align: center; vertical-align: middle;">Illimitato</td>
</tr>
</tbody>
</table>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Qodana Ultimate include la scansione delle vulnerabilità di sicurezza e delle dipendenze?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">No: le funzionalità incentrate sulla sicurezza sono riservate alla versione Ultimate Plus, non a Ultimate. L’analisi Taint per le vulnerabilità in stile OWASP, il controllo delle vulnerabilità delle dipendenze che segnala i CVE noti nelle librerie e l’audit delle licenze di terze parti richiedono tutti la licenza Ultimate Plus. La versione Ultimate si concentra sulle ispezioni della qualità del codice, su Quick-Fix e sui quality gate piuttosto che sull’analisi SAST o sull’analisi della composizione del software. Anche il Single Sign-On e l’API di Qodana Cloud sono disponibili solo con Ultimate Plus. I team che necessitano di Qodana per individuare difetti di iniezione o dipendenze vulnerabili dovrebbero optare per Ultimate Plus sin dall’inizio, poiché la versione Ultimate non metterà in evidenza tali risultati.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Quali linguaggi e sistemi di CI supporta Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Qodana Ultimate fornisce dieci linter di produzione che coprono JVM (Java, Kotlin, Groovy), Python, PHP, JavaScript e TypeScript, Go, .NET (C#, VB.NET), C e C++, Android, Ruby e Rust. Ogni linter è disponibile come immagine Docker per Linux e molti possono essere eseguiti anche in modalità nativa senza Docker. Per quanto riguarda la CI, si integra con GitHub Actions, GitLab CI/CD, Jenkins e TeamCity; inoltre, qualsiasi piattaforma in grado di eseguire un’immagine Docker può eseguire Qodana. I risultati possono anche essere aperti direttamente in IntelliJ IDEA, PhpStorm, Rider e VS Code, in modo che i problemi vengano risolti direttamente nell’editor. Questa versatilità consente a un’unica configurazione di Qodana di supportare team che lavorano su stack molto diversi tra loro.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Cosa dovrebbero verificare i team prima di scegliere Qodana Ultimate?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Verificate come Qodana calcola le licenze: il costo si basa sui contributori attivi, definiti come le persone che hanno effettuato commit ai vostri progetti su Qodana Cloud negli ultimi 90 giorni, con un minimo di tre. Verificate se avete effettivamente bisogno della scansione di sicurezza, poiché l’analisi dei taint, il controllo delle vulnerabilità e l’audit delle licenze non sono presenti nella versione Ultimate, ma compaiono solo in Ultimate Plus. Si noti che tutte le analisi vengono eseguite all’interno del proprio ambiente CI/CD: JetBrains non esegue scansioni sui propri server e Qodana Cloud si limita a memorizzare i report risultanti. I progetti open source possono utilizzare Qodana gratuitamente, il che può modificare il calcolo nel caso di attività miste tra pubblico e privato. È disponibile una versione di prova delle edizioni a pagamento se si desidera verificare l’efficacia dei linter sul proprio codice prima di procedere all’acquisto.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Domande frequenti su JetBrains Qodana Ultimate</h3>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Cosa carica Qodana Ultimate su Qodana Cloud?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Qodana inoltra a Qodana Cloud i report di analisi in formato SARIF, insieme ai dati sui contributori attivi utilizzati per il conteggio delle licenze. L’analisi del codice avviene nei vostri runner CI/CD, quindi il vostro codice sorgente non viene analizzato sull’infrastruttura di JetBrains. La configurazione genera una chiave pubblica memorizzata nel vostro repository e un token di progetto per il caricamento dei report.</p>
<h3 style="margin-top: 30px; margin-bottom: 10px;">Qodana Ultimate è in grado di analizzare un monorepo con diversi linguaggi?</h3>
<p style="margin-top: 0px; margin-bottom: 0px;">Sì: Qodana supporta i monorepo ed è possibile eseguire più linter su un unico progetto, ad esempio Qodana per JVM e Qodana per JS contemporaneamente. Poiché ogni linter è un'immagine Docker Linux separata, è possibile selezionare quelli che corrispondono ai linguaggi presenti nel repository. Il supporto per i monorepo è disponibile in tutte le edizioni, inclusa la Community.</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> </p>