Programiranje

Izmerite kakovost svoje kode .Net z NDepend

Ocenjevanje kakovosti kode aplikacije je pogosto subjektiven postopek. Zato se obrnemo na metrike kode - kvantitativne meritve, ki nudijo dragocen vpogled v kodo naše aplikacije. Razvijalci lahko izkoristijo meritve kode, da razumejo kakovost kode, dobijo predstavo o možnih težavah in ugotovijo, katere vrste in metode je treba spremeniti, da se izboljša kakovost.

Orodja za analizo statične kode se uporabljajo za merjenje kakovosti kode v aplikaciji, ne da bi jo bilo treba zagnati. Za .Net je na voljo veliko orodij za statično analizo kode. Sem spadajo FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend itd. Ta članek predstavlja razpravo o tem, kako lahko uporabimo NDepend za vizualizacijo kakovosti kode in sprejetje ukrepov za njeno izboljšanje.

Kaj je NDepend in zakaj ga uporabljati?

NDepend je statični analizator kode, ki se lepo integrira z Visual Studiom in ponuja dragocene meritve za določanje kakovosti kode. NDepend prikazuje te metrike v obliki seznamov, matric, grafov, drevesnih zemljevidov in grafikonov. Skupaj s temi meritvami lahko NDepend analizira vašo kodo in prijavi kršitve v veliki zbirki pravil.

NDepend shrani rezultate vsake analize, tako da lahko rezultate primerjate, ko izboljšate pokritost kode ali kakovost kode. Lahko ga zaženete kot samostojno aplikacijo in kot razširitev v Visual Studio. In lahko izkoristite razširitev NDepend Azure DevOps za integracijo NDepend s svojimi projekti v Azure.

Sledi nekaj presenetljivih lastnosti NDepend:

  • Širok nabor pravil kode za preverjanje skladnosti
  • Veliko grafikonov in diagramov za ogled meritev kode
  • Lepo se integrira z Visual Studio 2010, 2012, 2013, 2015 in 2017
  • Omogoča raziskovanje odvisnosti med moduli
  • Ponuja CQLinq (poizvedba kode prek LINQ) za prilagajanje analize
  • Meri pokritost kode
  • Ugotavlja težko vzdrževano kodo in ocenjuje tehnični dolg
  • Ustvari grafikone trendov

Uvod v NDepend

Če želite začeti uporabljati NDepend, ga morate prenesti in namestiti. Preizkusno kopijo NDepend lahko prenesete od tukaj. Pakirana bo v obliki .zip datoteke.

Ko odpakirate datoteko .zip namestitvenega programa NDepend, boste v njej našli naslednje datoteke:

  1. NDepend.Console - uporablja se za integracijo s postopkom gradnje
  2. NDepend.PowerTools - zbirka odprtokodnih statičnih analizatorjev
  3. NDepend.VisualStudioExtension.Installer - namesti razširitev Visual Studio za NDepend
  4. VisualNDepend - odjemalec GUI za NDepend

Razširitev Visual Studio za NDepend lahko namestite na enega od naslednjih dveh načinov:

  1. Zaženite NDepend.VisualStudioExtension.Installer
  2. Zaženite VisualNDepend in izberite »Namesti razširitev Visual Studio«

Ko je nameščena razširitev Visual Studio za NDepend, lahko izkoristite meritve, pravila, poročila, grafe, rezultate analizatorja in orodja v okolju Visual Studio IDE. Visual NDepend lahko izkoristite tudi za analizo svojih rešitev in projektov, ne da bi morali zagnati Visual Studio.

Razširitev Visual Studio za NDepend je na voljo za Visual Studio 2010 prek Visual Studio 2017. Upoštevajte, da jo uporabljam z Visual Studio 2017.

Analiziranje izvorne kode z NDepend

Če želite začeti analizirati svojo izvorno kodo, kliknite »Analizirajte rešitve VS in projekte VS«. Na voljo so še druge možnosti: „Analizirajte sklope .Net v mapi“, „Analizirajte sklope .Net“ in „Primerjajte dve različici kode.“ Ta zadnja možnost vam omogoča primerjavo dveh zgradb - lepa lastnost!

Zaradi poenostavitve bom uporabil izvorno kodo iz enega od mojih zadnjih člankov tukaj ("Kako uporabljati Lamar v ASP.Net Core"). Ko kliknete »Analizirajte rešitve VS in projekte VS«, se prikaže novo okno, kot je prikazano na sliki 1 spodaj.

Zdaj lahko kliknete »Prebrskaj« in določite datoteko rešitve projekta, za katerega želite, da ga NDepend analizira.

Na koncu kliknite na „Analizirajte en sklop .Net“, da začnete analizo, kot je prikazano na sliki 3 spodaj.

S tem bo izvedena analiza kode za izbrani projekt. Ko je analiza končana, bo NDepend prikazal okno z naslednjimi možnostmi:

  • Ogled nadzorne plošče NDepend
  • Pokaži interaktivni graf NDepend
  • Pravila kode brskalnika NDepend
  • Zaprite pogovorno okno

Odločimo se za ogled nadzorne plošče NDepend. Takole je videti rezultat:

NDepend prikazuje vrstice kode, informacije o vrstah, dolgu, komentarje v izvorni kodi, informacije o pokritosti, zapletenosti metode, kakovostnih pravilih in kršenih pravilih ter druga vprašanja.

Funkcije NDepend

Graf odvisnosti in matrika odvisnosti

NDepend vam prikaže tudi graf odvisnosti in matriko odvisnosti vaše kode. Medtem ko prva ponuja grafični prikaz odvisnosti v vašem projektu, druga ponuja tabelarni pogled vaše kode, organizirane po odvisnostih od imenskih prostorov in vrst.

Lestvice trendov

Grafikoni trendov so na voljo na armaturni plošči. Ti grafikoni ponujajo predogled, kako se je kakovost izvorne kode projekta sčasoma spreminjala. Ustvarite lahko tudi lastne grafikone trendov po meri.

Ciklomatična zapletenost

Ciklomatična zapletenost je kvantitativno merilo linearno neodvisnih poti v izvorni kodi, ki vam lahko pomagajo razumeti zapletenost vašega programa in izboljšati pokritost kode. NDepend lahko izkoristite za analizo ciklomatične zapletenosti v kodi vaše aplikacije. Več o ciklomatski zapletenosti si lahko preberete v tem članku.

Poizvedovanje s pomočjo CQLinq

CQLinq je ena najbolj presenetljivih lastnosti NDependa. CQLinq vam omogoča poizvedbo .Net kode s pomočjo LINQ. CQLinq lahko izkoristite za poizvedovanje o dolgu, težavah, pravilih in kakovostnih vratih.

Oglejmo si primer. Naslednja poizvedba CQLinq prikazuje imena metod in ciklomatično kompleksnost ne abstraktnih metod, ki imajo ciklomatično kompleksnost večjo od 20, razvrščene po padajočem vrstnem redu vrednosti ciklomatične kompleksnosti.

od m v aplikaciji.Metode

kjer je m.CyclomaticComplexity> = 20 &&! m.IsAbstrakt

vrstni red m.CyclomaticComplexity padajoče

izberite novo {m, m.CyclomaticComplexity}

Tu je še en primer poizvedbe CQLinq. Ta bo ob izvedbi prikazal imena metod, ki imajo več kot 100 vrstic kode.

od m v Metode, kjer m.NbLinesOfCode> 100 izbere m

Če želite izvedeti več o CQLinq, si lahko ogledate dokumentacijo NDepend tukaj.

NDepend je orodje za statično analizo kode, ki vam lahko da dragocen vpogled v kodo vaše aplikacije. NDepend lahko zaženete kot samostojno aplikacijo ali integrirano v Visual Studio. Čeprav NDepend ni brezplačen, je glede na njegove zmogljive zmogljivosti ugoden in je na voljo za vse najnovejše različice Visual Studio.

Če želite odličen vir za učenje NDependa, toplo priporočam tečaj Pluralsight »Practical NDepend«, ki ga je pripravil Eric Dietrich.

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