SlideShare a Scribd company logo
Code Quality 29 Settembre
2016
Sponsored by
Sponsor
Anselmi Ivan
www.resdata.it
@ianselmi
ianselmi@gmail.com
Definiamo la Code Quality
1/15
E’ composto da:
Metriche estratte dal codice sorgente
Numero di debiti tecnici
E’ un indicatore che ci mostra quanto il nostro software è in linea con gli
obbiettivi richiesti
Può essere riferito ai requisiti utente oppure al codice sorgente
Code Quality in azienda..perchè era necessario parlarne
2/15
• Perché abbiamo diversi gruppi dislocati geograficamente
• Perché dovevamo standardizzare il modo di scrivere software
• Perché ogni gruppo lavora in modo indipendente dagli altri
• Perché avevamo un grosso pregresso da manutenere
• Perché in alcuni progetti ci siamo trovati ad essere ….
…​SEPOLTI IN CASA
3/15
Ok partiamo dalle origini…
All’inizio utilizzavamo «l’indice di qualità universale»
4/15
Ok partiamo dalle origini…
5/15
https://blog.codinghorror.com/when-understanding-means-rewriting/
Cosa stavamo cercando
Intro
6/15
• Uno strumento per poterci misurare
• Multi linguaggio (c#, vb.net, javascript)
• Dashboard rappresentativa dei risultati
• Integrabile in Visual Studio e nel processo di build
• Stimare i debiti tecnici
• Free (il più possibile  )
Il nostro approccio…primo tentativo
Intro
7/15
• Integrate in Visual Studio
• Possibilità di integrare in build automatiche
• Esportazione manuale dei risultati
Fxcop + metriche di Visual Studio
[DEMO]
8/15
Perché abbiamo fallito
9/15
• Limitate al mondo .net
• Limitate a Visual Studio
• Solo per tecnici
• Soluzioni a pagamento (Es: NDepend)
• Nessuna dashboard
• I debiti tecnici non erano quantificabili
Il nostro approccio…secondo tentativo
SonarQube
10/15
•Integrate in Visual Studio (SonarLint)
•Multi linguaggio (js, vbnet, ecc)
•Rappresentazione grafica degli indici
•Free (parzialmente)
[DEMO SONARQUBE]
11/15
Perché ci è sembrato il software giusto…
•Integrazione con .Net e non solo
•Dashboard anche per non tecnici
•Valutazione dei debiti tecnici
•Integrabile nella build automatiche
12/15
[DEMO SONARLINT]
13/15
​..per finire…a cosa ha portato la Code Quality?
14/15
•Avere maggiore controllo sul codice
•Segnalazione tempestiva di eventuali debiti tecnici
•Poter standardizzare la scrittura del codice
•Avere un obbiettivo chiaro e condiviso tra i gruppi
•Facilitare la comprensione del codice
Links
• SonarQube - http://www.sonarqube.org/
• SonarLint - http://www.sonarlint.org/visualstudio/
• SonarQube Plugin - https://github.com/SonarSource/sonarqube
• DotNetPodcast - http://dotnetpodcast.com/show/card/104
15/15
GRAZIE PER L’ATTENZIONE!
[DOMANDE?]

More Related Content

PDF
It starts with a goal - Prato
PDF
I profili più richiesti in Piemonte
PDF
Lezione 1: I metodi agili
PPTX
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
PPTX
Il cielo è sempre più azure
PPTX
Keep calm and deploy
PPTX
On working in Particular
PPTX
Services UI composition
It starts with a goal - Prato
I profili più richiesti in Piemonte
Lezione 1: I metodi agili
Progetto MigrOS: progettazione e sviluppo degli strumenti di transcodifica de...
Il cielo è sempre più azure
Keep calm and deploy
On working in Particular
Services UI composition

Viewers also liked (7)

PPTX
Pub/Sub Basics
PPTX
Croce e delizia del lavoro remoto
PPTX
SOA, DDD e microservices
PPTX
Universal app ma universal per davvero
PPTX
THE ROAD TO A SERVICE ORIENTED ARCHITECTURE (SOA)
PPTX
Single Sign On con IdentityServer
PPTX
There is a bot for that
Pub/Sub Basics
Croce e delizia del lavoro remoto
SOA, DDD e microservices
Universal app ma universal per davvero
THE ROAD TO A SERVICE ORIENTED ARCHITECTURE (SOA)
Single Sign On con IdentityServer
There is a bot for that
Ad

Similar to Code metrics (20)

PPTX
Ttg 09 07_2015_debug_vs_2015
PDF
Exploring VS Code
PDF
Slide Mulesoft Meetup Milano #10.pdf
PDF
CI/CD - Presentazione Introduttiva
PDF
Introduzione ad Android
PPTX
Webcast - Introduzione a Visual Studio Online
PDF
Debugging with-z-ray
PDF
Evento 15 gen 2020 Eureka Service in collaborazione con Microsoft e PMI-CIC
PPTX
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
PDF
Festivalmente: Getting Things done
PDF
Daniela Baldo
PPTX
Le nuove competenze di Maticmind in ambito applicativo
PDF
Web app slots and WebAPI versioning
PDF
Web app slots and webapi versioning
PPTX
Produzione software
PPTX
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
PPT
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
PPTX
Works with ASP.NET Core on Linux and Mac
PDF
Continuos Integration
PPTX
Flavio ATZENI - SMAU 2014
Ttg 09 07_2015_debug_vs_2015
Exploring VS Code
Slide Mulesoft Meetup Milano #10.pdf
CI/CD - Presentazione Introduttiva
Introduzione ad Android
Webcast - Introduzione a Visual Studio Online
Debugging with-z-ray
Evento 15 gen 2020 Eureka Service in collaborazione con Microsoft e PMI-CIC
IntroduzioneAllaGestioneDiUnProgettoSoftwareConUML
Festivalmente: Getting Things done
Daniela Baldo
Le nuove competenze di Maticmind in ambito applicativo
Web app slots and WebAPI versioning
Web app slots and webapi versioning
Produzione software
Creare un’APP di successo, pubblicizzarla, monetizzare. Speaker: Luciano Blan...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Works with ASP.NET Core on Linux and Mac
Continuos Integration
Flavio ATZENI - SMAU 2014
Ad

More from Klab (9)

PPTX
Building an app from scratch
PPTX
Azure Application Insights
PPTX
Introduzione a git
PPTX
Database under source control
PPTX
The five dysfunctions of a team
PPTX
Branching & Merging strategies (with TFS)
PDF
Introduzione a ReactiveX
PDF
Don’t await … try async/await !
PPTX
Errore umano. no, cattiva progettazione
Building an app from scratch
Azure Application Insights
Introduzione a git
Database under source control
The five dysfunctions of a team
Branching & Merging strategies (with TFS)
Introduzione a ReactiveX
Don’t await … try async/await !
Errore umano. no, cattiva progettazione

Code metrics

  • 1. Code Quality 29 Settembre 2016 Sponsored by
  • 4. Definiamo la Code Quality 1/15 E’ composto da: Metriche estratte dal codice sorgente Numero di debiti tecnici E’ un indicatore che ci mostra quanto il nostro software è in linea con gli obbiettivi richiesti Può essere riferito ai requisiti utente oppure al codice sorgente
  • 5. Code Quality in azienda..perchè era necessario parlarne 2/15 • Perché abbiamo diversi gruppi dislocati geograficamente • Perché dovevamo standardizzare il modo di scrivere software • Perché ogni gruppo lavora in modo indipendente dagli altri • Perché avevamo un grosso pregresso da manutenere • Perché in alcuni progetti ci siamo trovati ad essere ….
  • 7. Ok partiamo dalle origini… All’inizio utilizzavamo «l’indice di qualità universale» 4/15
  • 8. Ok partiamo dalle origini… 5/15 https://blog.codinghorror.com/when-understanding-means-rewriting/
  • 9. Cosa stavamo cercando Intro 6/15 • Uno strumento per poterci misurare • Multi linguaggio (c#, vb.net, javascript) • Dashboard rappresentativa dei risultati • Integrabile in Visual Studio e nel processo di build • Stimare i debiti tecnici • Free (il più possibile  )
  • 10. Il nostro approccio…primo tentativo Intro 7/15 • Integrate in Visual Studio • Possibilità di integrare in build automatiche • Esportazione manuale dei risultati Fxcop + metriche di Visual Studio
  • 12. Perché abbiamo fallito 9/15 • Limitate al mondo .net • Limitate a Visual Studio • Solo per tecnici • Soluzioni a pagamento (Es: NDepend) • Nessuna dashboard • I debiti tecnici non erano quantificabili
  • 13. Il nostro approccio…secondo tentativo SonarQube 10/15 •Integrate in Visual Studio (SonarLint) •Multi linguaggio (js, vbnet, ecc) •Rappresentazione grafica degli indici •Free (parzialmente)
  • 15. Perché ci è sembrato il software giusto… •Integrazione con .Net e non solo •Dashboard anche per non tecnici •Valutazione dei debiti tecnici •Integrabile nella build automatiche 12/15
  • 17. ​..per finire…a cosa ha portato la Code Quality? 14/15 •Avere maggiore controllo sul codice •Segnalazione tempestiva di eventuali debiti tecnici •Poter standardizzare la scrittura del codice •Avere un obbiettivo chiaro e condiviso tra i gruppi •Facilitare la comprensione del codice
  • 18. Links • SonarQube - http://www.sonarqube.org/ • SonarLint - http://www.sonarlint.org/visualstudio/ • SonarQube Plugin - https://github.com/SonarSource/sonarqube • DotNetPodcast - http://dotnetpodcast.com/show/card/104 15/15