Programmēšana

Izmēriet sava .Net koda kvalitāti, izmantojot NDepend

Lietojumprogrammas koda kvalitātes novērtēšana bieži ir subjektīvs process. Tāpēc mēs pievēršamies koda metrikai - kvantitatīviem mērījumiem, kas sniedz vērtīgu ieskatu mūsu lietojumprogrammas kodā. Izstrādātāji var izmantot koda metrikas priekšrocības, lai izprastu koda kvalitāti, iegūtu priekšstatu par iespējamām problēmām un noteiktu, kuri veidi un metodes ir jāpārstrādā, lai uzlabotu kvalitāti.

Statiskā koda analīzes rīki tiek izmantoti, lai mērītu koda kvalitāti lietojumprogrammā, neizpildot lietojumprogrammu. Domēnam .Net ir pieejami daudzi statisko kodu analīzes rīki. Tie ietver FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend utt. Šajā rakstā ir apspriests, kā mēs varam izmantot NDepend, lai vizualizētu koda kvalitāti un pieņemtu pasākumus tā uzlabošanai.

Kas ir NDepend un kāpēc to izmantot?

NDepend ir statiskā koda analizators, kas labi integrējas Visual Studio un sniedz vērtīgu metriku koda kvalitātes noteikšanai. NDepend parāda šo metriku sarakstu, matricu, diagrammu, koku karšu un diagrammu veidā. Kopā ar šiem rādītājiem NDepend var analizēt jūsu kodu un ziņot par pārkāpumiem, izmantojot lielu noteikumu datu bāzi.

NDepend saglabā katras analīzes rezultātus, lai pēc koda pārklājuma vai koda kvalitātes uzlabošanas jūs varētu tos salīdzināt. To var palaist gan kā atsevišķu lietojumprogrammu, gan kā paplašinājumu Visual Studio. Un jūs varat izmantot NDepend Azure DevOps paplašinājuma priekšrocības, lai integrētu NDepend ar saviem projektiem Azure.

Šīs ir dažas no NDepend pārsteidzošajām iezīmēm:

  • Liels kodu noteikumu kopums, lai pārbaudītu atbilstību
  • Daudzas diagrammas un diagrammas kodu metrikas skatīšanai
  • Lieliski integrējas ar Visual Studio 2010, 2012, 2013, 2015 un 2017
  • Ļauj izpētīt atkarības starp moduļiem
  • Nodrošina CQLinq (Code Query over LINQ), lai pielāgotu analīzi
  • Mēra koda pārklājumu
  • Identificē grūti uzturējamo kodu un aplēš tehnisko parādu
  • Izveido tendenču diagrammas

Darba sākšana ar NDepend

Lai sāktu lietot NDepend, jums būs jālejupielādē un jāinstalē tā kopija. Šeit varat lejupielādēt NDepend izmēģinājuma kopiju. Tas tiks iepakots kā .zip fails.

Kad esat noņēmis NDepend instalētāja .zip failu, iekšpusē atradīsit šādus failus:

  1. NDepend.Console - tiek izmantots integrācijai ar būvēšanas procesu
  2. NDepend.PowerTools - atvērtā koda statisko analizatoru kolekcija
  3. NDepend.VisualStudioExtension.Installer - instalē Visual Studio paplašinājumu NDepend
  4. VisualNDepend - GUI klients NDepend

NDepend Visual Studio paplašinājumu varat instalēt vienā no šiem diviem veidiem:

  1. Palaidiet NDepend.VisualStudioExtension.Installer
  2. Palaidiet VisualNDepend un atlasiet “Install Visual Studio Extension”

Kad Visual Studio paplašinājums programmai NDepend ir instalēts, varat izmantot metriku, kārtulas, pārskatus, diagrammas, analizatora rezultātus un rīkus Visual Studio IDE. Varat arī izmantot Visual NDepend priekšrocības, lai analizētu savus risinājumus un projektus, palaižot Visual Studio.

Visual Studio paplašinājums NDepend ir pieejams Visual Studio 2010, izmantojot Visual Studio 2017. Ņemiet vērā, ka es to izmantoju ar Visual Studio 2017.

Avota koda analīze ar NDepend

Lai sāktu analizēt pirmkodu, varat noklikšķināt uz “Analizēt VS risinājumus un VS projektus”. Citas pieejamās opcijas ir “Analizēt .Net mezglus mapē”, “Analizēt .Net mezglu kopu” un “Salīdzināt 2 kodu bāzes versijas”. Šī pēdējā opcija ļauj salīdzināt divus būvējumus - jauka funkcija!

Vienkāršības labad es izmantošu avota kodu no viena no saviem nesenajiem rakstiem šeit (“Kā lietot Lamāru ASP.Net Core”). Noklikšķinot uz “Analizēt VS risinājumus un VS projektus”, tiks parādīts jauns logs, kā parādīts 1. attēlā.

Tagad varat noklikšķināt uz “Pārlūkot” un norādīt projekta risinājuma failu, kuru vēlaties analizēt NDepend.

Visbeidzot, noklikšķiniet uz “Analizēt vienu .Net montāžu”, lai sāktu analīzi, kā parādīts 3. attēlā.

Tas veiks koda analīzi atlasītajam projektam. Kad analīze būs pabeigta, NDepend parādīs logu ar šādām opcijām:

  • Skatīt NDepend informācijas paneli
  • Rādīt NDepend interaktīvo grafiku
  • Pārlūka NDepend koda kārtulas
  • Aizveriet dialoglodziņu

Izvēlēsimies skatīt NDepend informācijas paneli. Izskats izskatās šādi:

NDepend parāda kodu kodus, informāciju par veidiem, parādu, komentārus pirmkodā, informāciju par pārklājumu, metodes sarežģītību, kvalitātes vārtiem un pārkāptajiem noteikumiem un citus jautājumus.

NDepend funkcijas

Atkarības grafiks un atkarības matrica

NDepend parāda arī jūsu koda atkarības diagrammu un atkarības matricu. Kamēr pirmais nodrošina grafisko skatu par jūsu projekta atkarībām, otrais nodrošina koda tabulas skatu, kas sakārtots atkarībā no nosaukumvietām un tipiem.

Tendenču diagrammas

Tendenču diagrammas ir pieejamas informācijas panelī. Šīs diagrammas sniedz priekšskatījumu par to, kā laika gaitā ir mainījusies projekta pirmkoda kvalitāte. Varat arī izveidot savas pielāgotās tendenču diagrammas.

Ciklomatiskā sarežģītība

Ciklomatiskā sarežģītība ir lineāri neatkarīgu avota kodu ceļu kvantitatīvs mērījums, kas var palīdzēt izprast programmas sarežģītību un uzlabot koda pārklājumu. Varat izmantot NDepend priekšrocības, lai analizētu lietojumprogrammas koda sarežģītību. Šajā rakstā varat lasīt vairāk par ciklomātisko sarežģītību.

Vaicājumu veikšana, izmantojot CQLinq

CQLinq ir viena no visspilgtākajām NDepend īpašībām. CQLinq ļauj vaicāt .Net kodu, izmantojot LINQ. Varat izmantot CQLinq priekšrocības, lai vaicātu kodu parādu, jautājumus, noteikumus un kvalitātes vārtus.

Apskatīsim piemēru. Šis CQLinq vaicājums parāda tādu abstraktu metožu nosaukumus un ciklisko sarežģītību, kuru ciklomātiskā sarežģītība ir lielāka par 20, sakārtojot ciklomatiskās sarežģītības vērtības dilstošā secībā.

no m lietojumprogrammā. Metodes

kur m.CyclomaticCompllexity> = 20 &&! m.IsAbstrakt

secība pēc m.CyclomaticCompleksitāte samazinās

atlasīt jaunu {m, m.CyclomaticComplexity}

Šeit ir vēl viens CQLinq vaicājuma piemērs. Pēc izpildes parādīs to metožu nosaukumus, kurās ir vairāk nekā 100 koda rindu.

no m sadaļā Metodes, kur m.NbLinesOfCode> 100 atlasiet m

Lai uzzinātu vairāk par CQLinq, šeit varat atsaukties uz NDepend dokumentāciju.

NDepend ir statiskā koda analīzes rīks, kas var sniegt vērtīgu ieskatu par lietojumprogrammas kodu. Varat palaist NDepend kā atsevišķu lietojumprogrammu vai integrētu Visual Studio. Lai gan NDepend nav bezmaksas, ņemot vērā tā spēcīgās iespējas, tā cena ir par pieņemamu, un tā ir pieejama visām jaunākajām Visual Studio versijām.

Ja vēlaties lielisku resursu NDepend apguvei, es ļoti iesaku Ērika Dītriha Pluralsight kursu “Praktiskais NDepend”.

$config[zx-auto] not found$config[zx-overlay] not found