---
# System prepended metadata

title: Code quality stamp color-scale
tags: [' wp2', Ideas]

---

---
tags: Ideas, wp2
title: Code quality stamp color-scale
---

# Code quality stamp color-scale

Questo stamp valuta solo la qualità di un codice per mezzo di metriche note nell'ingegneria del software ed è opzionale per uno sviluppatore!!! 

È opzionale perché questo tipo di stamp non evidenzia problematiche *correntemente* presenti nel software, ma bensì fornisce indicazioni per migliorarne la sua qualità ed evitare di introdurre difetti durante lo sviluppo.

I blocchi di metriche usati sono code complexity e code clarity, spiegati nel capitolo 2 della deliverable 2.2.

La code complexity (halstead, cc e cognitive) sono metriche importantissime per determinare se ci sono parti di codice che risultano complesse non solo da interpretare, ma anche perché quelle stesse parti potrebbero introdurre bugs in caso di futuri refactors. Per cui si cerca di dire allo sviluppatore di migliorarle attestandone la qualità

La code clarity (loc, nexits e nargs) sono tutte metriche importanti perché riducono l'effort mentale di uno sviluppatore nella comprensione del codice e risultano un valore aggiunto per la qualità del codice stesso

Fissiamo quindi una priorità (alta significa più importante) 0 alla code clarity e 1 alla code complexity

Quindi una possibile scala di colori potrebbe essere:

- Grigio --> allo sviluppatore non interessa il code quality stamp, in quanto opzionale (significa che nessuna metrica viene computata)
- Verde scurissimo --> a sviluppatore interessa maggiormente la code clarity, quindi la priorità più bassa 0
- Verde meno scuro ---> a sviluppatore interessa maggiormente la code complexity, che ha priorità più alta 1
- Verde chiaro e saturo ---> sviluppatore calcola sia code clarity che code complexity

## Domande

**Ha senso una scala del genere nel caso in cui uno sviluppatore computa una singola metrica di un blocco?? i.e solo Halstead di code complexity, ma non cc e cognitive**

> [name=mik]
Secondo me questo caso va rigettato, perché o lo sviluppatore valuta l'intero blocco o il bollino non va assegnato.

**Un colore più chiaro è sintomo di maggiore qualità del codice perché vuol dire che più informazioni (metriche) vengono fornite?**

> [name=mik]
Direi di sì, perchè stai dimostrando che il tuo codice mira ad essere più **chiaro** possibile
