ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 149
Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 20
Abonament PDF

Metrici în Visual Studio 2013

Radu Vunvulea
Solution Architect
@iQuest



PROGRAMARE

În articolul din numărul trecut am analizat modul cum putem să măsurăm metricele software folosind Sonar. Acesta este un tool care poate fi util liderului echipei cât și restului echipei. Orice membru din echipă poate extrem de ușor să verifice pe interfața web a Sonar-ului care este valoarea la diferite metrice.

Dacă folosim ca mediu de dezvoltare Visual Studio 2013 vom descoperi că avem opțiunea de a calcula o parte dintre metrici direct din Visual Studio, fără să fim obligați să folosim alte aplicații sau tool-uri. În cadrul acestui articol vom descrie metricele pe care le putem calcula folosind direct ceea ce ne pune la dispoziție Visual Studio.

De ce ar trebui să rulăm un astfel de tool?

Acest tip de tool ne ajută să detectam posibilele probleme pe care aplicația noastră le are, informându-ne în același timp și asupra calității codului pe care l-am scris. Așa cum se va vedea în rândurile de mai jos, toate regulile și recomandările pe care Microsoft le are legate de cod se regăsesc în acest tool.

O parte dintre defectele pe care le descoperă un astfel de tool sunt uneori extrem de greu de găsit folosind unit teste. Datorită unui tool de acest gen, putem avea certitudinea că aplicația pe care o scriem este de calitate.

Ce metrice putem să obținem?

Începând cu Visual Studio 2013, toate versiunile de Visual Studio (mai puțin Visual Studio Test Professional) ne oferă posibilitatea să calculăm metricele direct din el. De la bun început trebuie să știm că numărul de metrici pe care le putem calcula folosind Visual Studio este limitat. Din păcate, nu avem posibilitatea să calculăm toate metricele care sunt disponibile în Sonar, dar există câteva extensii pentru Visual Studio care ne ajută să calculăm și alte metrice, nu doar pe cele care există în Visual Studio.

Visual Studio ne permite să calculăm o parte dintre metrice folosind Static Code Analysis. Acesta analizează codul încercând să ofere dezvoltatorilor date despre proiect și codul pe care l-au scris, înainte ca aceștia să îl înainteze spre source control. Pe baza acestei analize putem să identificăm posibile probleme legate de:

Sau multe alte probleme. Totul ține și de abilitatea pe care o are dezvoltatorul pentru a interpreta aceste metrice. Un aspect interesant la acest analizator este faptul că toate regulile și recomandările pe care Microsoft le are legate de cod, de stilul codului și de modul în care trebuie să folosim diferite clase și metode se regăsesc în acest analizator. Toate aceste reguli sunt grupate în diferite categorii.

Prin acest mod identificăm cu ușurință zone din aplicația noastră care nu folosesc un API așa cum ar trebui. În cazul în care doriți să creați o regula specifică veți avea nevoie de Visual Studio 2013 Premium sau Ultimate. Aceste două versiuni de Visual Studio ne permit să adăugăm reguli noi, specifice proiectului sau companiei în care lucrăm. Odată aceste reguli adăugate, analizatorul de cod va verifica dacă acestea sunt respectate, avertizându-ne în cazul unei abateri de la reguli. Din păcate în acest moment putem să analizăm doar codul scris C#, F#, VB și C/C++.

O parte dintre cititori ar putea să spună că acest lucru se putea face și în versiunile mai vechi de Visual Studio. Se poate subscrie la afirmația lor, dar trebuie adăugat că această nouă versiune (2013) a adus în plus posibilitatea de a analiza codul fără să fie nevoie să îl executăm. Acest lucru se putea mai mult sau mai puțin și în Visual Studio 2012.

Cum rulăm acest tool?

Aceste tool-uri pot să fie rulate în diferite moduri, atât manual din meniul "Analyze" cât și în mod automat. Pentru a le putea rula în mod automat este nevoie să selectăm opțiunea de "Enable Code Alalysis on Build" pentru fiecare proiect pe care dorim să îl analizăm.

O altă opțiune destul de interesantă este să activăm din TFS un policy prin care dezvoltatorul să fie obligat să ruleze acest analizator înainte ca acesta să poată să facă check-in pe TFS. Această opțiune se poate activa din zona "Check-in Policy", unde este nevoie să adăugăm o nouă regulă de tip "Code Analysis".

Trebuie să conștientizăm că enforsarea unei astfel de reguli nu ne garantează că dezvoltatorul își va citi raportul care se generează și că va ține cont de el. Tot ceea ce ni se garantează este că acest raport a fost generat. De aceea fiecare echipă trebuie educată să valorifice aceste rapoarte și să le analizeze în momentul în care ne decidem să folosim astfel de tool-uri.

În momentul în care facem enforce la acestă regulă avem posibilitatea să selectăm ce reguli nu trebuie încălcate când se face un chec-in pe TFS. De exemplu, nu se va putea face check-in pe TFS la un cod ce foloseste o instanță a unui obiect ce implementează IDisposable fără să apeleze și metoda Dispose.

Când dezvoltatorul va încerca să facă check-in la un cod care nu respectă una dintre reguli, va primi o eroare care nu îi va permite să trimită pe TFS modificarea fără să rezolve problema.

La fel de bine, avem posibilitatea să rulăm acest tool și ca parte din buid. Pentru aceasta este nevoie să activăm această opțiune din Build Definition.

Ce ne spune Code Analysis?

Rezultatul rulării acestui tool este un set de warning-uri. Cele mai importante informații pe care un warning le conține sunt:

Fiecare warning ne permite să navigăm exact la linia de cod unde este această problemă. În plus, pentru fiecare warning avem un link la MSDN care prezintă în detaliu cauza warning-ului și ceea ce putem face pentru a-l elimina.

Cum putem să creăm reguli custom?

Așa cum am menționat în rândurile de mai sus, crearea de reguli custom se poate face doar din Visual Studio Premium sau Ultimate. Apoi este nevoie să mergem în "New>File>General>Installed Templates>Code Analysis Rule Set".

Odată ce avem o regulă blank, putem să specificăm diferite proprietăți pe care noi dorim să le aibă.

Pe lângă acest tool în Visual Studio avem la dispoziție alte două tool-uri interesante.

Code Clones

Acest tool ne permite să detectăm automat codul care este duplicat. Important de precizat este că există mai multe tipuri de cod duplicat (clonat) pe care acesta poate să îl detecteze:

Pe lângă aceste informații, putem să știm pentru fiecare cod duplicat, în câte locații acesta este duplicat și putem naviga până la linia de cod unde acesta apare. O altă metrică eficientă este numărul total de linii duplicat (clonat). Apelând la această metrică ne putem da seama destul de ușor de câte linii de cod am putea să scăpăm.

Code Metrics

Prin intermediul acestui tool analizăm fiecare proiect pe care îl avem în soluție și extragem diferite metrice. Fiind un tool integrat cu Visual Studio, putem să navigăm în fiecare proiect și să vedem valoarea fiecărei metrice de la nivel de proiect, până la nivel de namespace, de clasă și metodă.

Există cinci metrice analizabile folosind Code Metrics:

Concluzie

În acest articol am descoperit că și Visual Studio ne pune la dispoziție diferite metode pentru a verifica calitatea codului. Unele dintre aceste tool-uri sunt disponibile în versiuni normale de Visual Studio, iar altele doar în varianta Ultimate. În comparație cu Sonar, Visual Studio nu permite efectuarea de share la aceste metrice prin intermediul unui portal. În schimb, ne permite să le exportăm într-un Excel pentru a le putea trimite la echipă. Tool-urile din Visual Studio sunt un bun început pentru orice echipă sau dezvoltator care vrea să se informeze asupra calității codului scris de el sau de echipă.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects