A maiò parte di e squadre d'ingegneria gestiscenu duie conversazioni separate nantu à a listessa basa di codice. Una hè nantu à a sicurità: ci hè un risicu d'iniezione SQL, un sicretu codificatu in modu rigidu, una dipendenza sfruttabile. L'altra hè nantu à a mantenibilità: sta funzione hè troppu cumplessa, stu codice hè duplicatu trè volte, ci hè un codice mortu chì nimu ùn osa sguassà.
Queste conversazioni si verificanu di solitu in strumenti diversi, gestiti da squadre diverse, secondu calendari diversi. Un scanner di sicurezza segnala ciò chì hè sfruttabile. Un strumentu di qualità separatu, spessu cumpratu è gestitu indipindentamente, segnala ciò chì hè caru da mantene. Dui licenze, duie dashboards, dui parsers chì camminanu u listessu arburu di sintassi astratta per risponde à duie dumande diverse.
Quella divisione hà un costu. I difetti di affidabilità (u tipu chì causanu fallimenti in tempu reale, micca violazioni) ùn ricevenu micca a listessa disciplina di triage cum'è i risultati di sicurezza, perchè stanu fora di a squadra di sicurezza. dashboardÈ quandu una squadra hà digià un mutore d'analisi statica chì analizza ogni schedariu per ragioni di sicurezza, mette in opera un secondu mutore senza relazione solu per verificà a qualità di u codice hè un travagliu ridondante senza benefiziu cumunu.
Perchè a qualità di u codice hè impurtante (è cumu hè differente da Code Security)
Qualità di u codice è code security risponde à duie dumande diverse. Code security dumanda: pò esse sfruttatu stu codice ? A qualità di u codice dumanda: pò esse mantinutu stu codice ? Una funzione pò esse perfettamente sicura è esse sempre un intricatu di cinquecentu linee chì nimu vole tuccà, è un modulu ben urganizatu è faciule da leghje pò ancu esse speditu cù un difettu d'iniezione criticu. Nisuna disciplina ùn sustituisce l'altra.
U costu di ignurà a qualità di u codice ùn si manifesta micca cum'è una violazione. Si manifesta più lentamente: una nova assunzione ci vole duie settimane invece di dui ghjorni per fà un cambiamentu sicuru, una funzione di rutina ci vole trè sprint perchè nimu ùn pò prevede ciò chì un bloccu duplicatu si romperà in altrò, un ingegnere di guardia brusgia un'ora à traccià un bug attraversu u codice mortu chì duverebbe esse statu eliminatu un annu fà. Nunda di tuttu què face scattare un alerta di sicurezza. Tuttu si manifesta in velocità, è quandu hè visibile in un sprint retro, hè digià caru da riparà.
Hè cusì per trattà a qualità cù u listessu rigore chè a sicurità: micca perchè un odore di codice hè una minaccia, ma perchè lascià chì u debitu di mantenibilità s'accumuli senza monitoraghju hè cumu una basa di codice diventa u locu induve e funzionalità vanu à more.
A Meglia Via: Un Motore, Dui Cataloghi di Regole
U scanner di qualità di codice di Xygeni analizza u codice surghjente per difetti di mantenibilità è affidabilità: odori di codice, violazioni di cumplessità, codice mortu è duplicazione - i mudelli chì ùn causanu micca una violazione, ma causanu interruzioni, regressioni è squadre lente.
A scelta di cuncepimentu distintiva hè architettonica, micca cusmetica. Code Quality sparte u so mutore d'analisi statica cù Xygeni's SAST flat: i stessi parser, a listessa custruzzione AST, a listessa scuperta di fugliali. Ciò chì ùn sparte micca hè u catalogu di reguli. E regule di qualità sò limitate à a qualità, micca à a sicurità, è i risultati sò publicati in una sezione dedicata à a Qualità di a piattaforma Xygeni, tenuta separata da SAST è u restu di e tavule di risichi di sicurezza.
U risultatu: e squadre ottenenu una vista di a mantenibilità è una vista di a sicurezza da u listessu passu d'analisi sottostante, senza fusionà duie preoccupazioni diverse in una sola rumurosa. dashboard.
Dui Modi per Ottene un Segnale di Qualità in u vostru Pipeline
Micca tutte e funzioni di "qualità di codice" funzionanu di listessa manera sottu u cappucciu. Parechje CI/CD-l'arnesi di qualità nativa sò strati d'aggregazione: ùn analizanu micca u vostru codice elli stessi; impurtanu i risultati da qualsiasi linter chì avete digià in esecuzione (un linter JavaScript, un linter Python, un rilevatore di duplicazione), ognunu riformattatu in un schema JSON spartutu, ognunu cablatu cum'è u so propiu pipeline passu. Què hè flessibile, ma significa chì u vostru signale di qualità hè solu consistente quant'è u numeru di strumenti, furmati è mantenitori separati chì avete cucitu inseme, unu per lingua.
U scanner di qualità di codice di Xygeni piglia l'altra strada: un mutore nativu, digià in esecuzione per a sicurezza, allargatu cù un catalogu di regule di qualità. Ùn ci hè micca linter per lingua da installà, nisun furmatu di rapportu da rifurmattà, nisun travagliu separatu da mantene per strumentu. Uttene un cumandamentu, un mudellu di gravità coerente è unu dashboard sezzione, perchè l'analisi ùn hè mai stata divisa in diversi strumenti per cumincià.
Cumu travaglia?
Code Quality funziona cum'è u so propiu cumandamentu CLI:
qualità di l'ossigenu -d [opzioni] (xygeni code-quality funziona cum'è un alias.)
Sparte u so mudellu d'opzione cù oxygeni sast, dunque chiunque esegue digià u scanner di sicurezza di Xygeni ricunnoscerà subitu l'interfaccia:
| upzione | Cosa face |
|---|---|
-d, --dir | Repertoriu da analizà |
--detectors | Eseguite ID di rilevatore specifici, o una gravità è tuttu ciò chì hè sopra. |
--fail-on | Esce micca zero à una gravità data, per CI/CD gating |
--baseline | Paragunate cù una basa è restituite solu i novi risultati |
--upload | Mandate i risultati à a piattaforma Xygeni |
Generazione di un rapportu di qualità di codice
Una scansione produce un rapportu di qualità di u codice chì pudete mandà à a piattaforma, esportà cum'è JSON per l'artefatti CI, o dà à un capu di squadra senza dà li. dashboard accessu. Tramindui sò cumandamenti di una sola linea:
# Scansione è caricamentu direttu nantu à a piattaforma Xygeni
qualità xygeni -n U mo Prughjettu –caricà
# Esporta un rapportu di qualità di u codice cum'è JSON, solu risultati critichi
qualità di l'ossigenu -d –detectors critical –format json –output quality.json
Una volta caricatu, quellu listessu rapportu di qualità di codice hè ciò chì pupula a sezzione Qualità di u dashboard: filtrabile, cù dettagli scorrevoli per scuperta, linee di basa, è u listessu cumpurtamentu di reporting chì e squadre utilizanu digià per SAST.
Qualità di esecuzione accantu à una scansione di sicurezza
Per e squadre chì volenu i dui signali da un solu passu, u SAST u scanner accetta un –include-qualità bandiera:
oxygeni sast -d –include-qualità
picchì SAST è Code Quality spartenu a fase di l'analizzatore, questu hè più efficiente chè eseguisce i dui scanner unu dopu l'altru. Produce dui rapporti separati, sicurezza è qualità, è ognunu finisce sempre in u so propiu dashboard sezzione. A bandera cambia u modu in cui a scansione hè eseguita, micca u modu in cui i risultati sò urganizati.
Scansione senza cunnessione
Per l'ambienti cù spazii d'aria o i corridori CI senza uscita versu a piattaforma Xygeni, e scansioni di qualità ponu esse eseguite lucalmente è caricate dopu:
qualità di l'ossigenu -d -n U Meiu Prughjettu
# …dopu, da un host cun cunnessione:
xygeni report-upload -n U mo Prughjettu -r depsdoctor-quality.json
I risultati sbarcanu in a sezzione Qualità esattamente cum'è s'elli fussinu da una scansione in diretta: listessu triage, listessa pulitica, listessu cumpurtamentu di basa.
Perchè tene a qualità separata da a sicurezza hè impurtante
Seria faciule d'inserisce l'odori di codice in a listessa lista di gravità cum'è una vulnerabilità sfruttabile. Xygeni ùn a face micca deliberatamente. Una funzione duplicata è una iniezione SQL ùn sò micca u listessu tipu di risicu, è trattà li in u listessu modu allena e squadre à reagisce eccessivamente à u rumore di manutenibilità o à reagisce insufficientmente à i veri risultati di sicurezza. Mantene i cataloghi di regule, i rapporti è u dashboard viste separate, mentre spartenu u mutore sottu, significa chì ogni squadra riceve u signale chì li interessa senza pagà per un secondu strumentu d'analisi statica.
Pruvate: A Qualità di u Codice hè dispunibile oghje per mezu di l'interfaccia di linea di cumunicazioni Xygeni. E squadre sò digià in esecuzione. oxygeni sast pò aghjunghje –include-qualità à i so esistenti pipeline in una linea, nisun novu strumentu da imbarcà, nisun secondu dashboard da verificà.
FAQ
Chì ghjè a qualità di u codice Xygeni?
Xygeni Code Quality hè un scanner d'analisi statica chì rileva difetti di manutenibilità è affidabilità, cumpresi odori di codice, violazioni di cumplessità, codice mortu è duplicazione. Funziona cum'è u so propiu cumandamentu (qualità di l'ossigenu) è raporta in una sezzione dedicata à a Qualità di a piattaforma Xygeni, separata da i risultati di sicurezza.
A qualità di u codice hè a listessa chè SAST?
N° Qualità di u codice è SAST spartenu u listessu mutore di parsing sottostante ma utilizanu cataloghi di regule indipendenti è producenu rapporti indipendenti. SAST cerca vulnerabilità di sicurezza; Code Quality cerca difetti di manutenibilità è affidabilità.
Possu fà una scansione di qualità è una scansione di sicurezza à tempu?
Iè. Corre oxygeni sast -d –include-qualità esegue i dui insemi di regule in un solu passu, chì hè più efficiente chè eseguisce i dui scanner separatamente, postu chì spartenu a fase di parser. I risultati producenu sempre dui rapporti separati è appariscenu in dui rapporti separati dashboard rùbbriche.
Aghju bisognu di una licenza separata per Code Quality?
U caricamentu è a visualizazione di i risultati di qualità richiede u dirittu di Qualità di Codice, u listessu necessariu per eseguisce a scansione.
Code Quality pò esse eseguitu senza accessu à Internet?
Iè. I scans ponu esse eseguiti lucalmente senza u –carricà bandiera, è u rapportu risultante pò esse caricatu dopu da un host cunnessu utilizendu Caricamentu di rapportu xygeni.






