Programovanie

Zmerajte kvalitu svojho .Net kódu pomocou NDepend

Hodnotenie kvality kódu aplikácie je často subjektívny proces. Preto sa prikláňame k metrikám kódu - kvantitatívnym meraniam, ktoré poskytujú cenné informácie o kóde našej aplikácie. Vývojári môžu využiť metriky kódu na pochopenie kvality kódu, získanie predstavy o možných problémoch a identifikáciu typov a metód, ktoré je potrebné refaktorovať, aby sa zlepšila kvalita.

Na meranie kvality kódu v aplikácii bez nutnosti jej vykonávania sa používajú nástroje na statickú analýzu kódu. Pre .Net existuje veľa nástrojov na analýzu statického kódu. Patria sem FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend atď. Tento článok predstavuje diskusiu o tom, ako môžeme pomocou NDepend vizualizovať kvalitu kódu a prijať opatrenia na jeho zlepšenie.

Čo je NDepend a prečo ju používať?

NDepend je analyzátor statického kódu, ktorý sa pekne integruje s Visual Studio a poskytuje cenné metriky na určovanie kvality kódu. NDepend zobrazuje tieto metriky vo forme zoznamov, matíc, grafov, stromových máp a grafov. Spolu s týmito metrikami môže NDepend analyzovať váš kód a hlásiť porušenia rozsiahlej databázy pravidiel.

Aplikácia NDepend ukladá výsledky každej analýzy, aby ste mohli výsledky porovnať po zlepšení pokrytia kódu alebo kvality kódu. Môže byť spustený ako samostatná aplikácia aj ako rozšírenie v Visual Studio. A môžete využiť rozšírenie NDepend Azure DevOps na integráciu NDepend s vašimi projektmi v Azure.

Nasledujú niektoré z pozoruhodných prvkov programu NDepend:

  • Veľká sada pravidiel kódu na kontrolu súladu
  • Mnoho grafov a diagramov na prezeranie metrík kódu
  • Pekne sa integruje do Visual Studio 2010, 2012, 2013, 2015 a 2017
  • Umožňuje vám preskúmať závislosti medzi modulmi
  • Poskytuje CQLinq (Code Query over LINQ) na prispôsobenie analýzy
  • Meria pokrytie kódu
  • Identifikuje ťažko udržiavateľný kód a odhaduje technický dlh
  • Vytvára trendové tabuľky

Začíname s NDepend

Ak chcete začať používať program NDepend, musíte si stiahnuť a nainštalovať jeho kópiu. Skúšobnú kópiu NDepend si môžete stiahnuť odtiaľto. Bude zabalený ako súbor .zip.

Po rozbalení súboru .zip inštalačného programu NDepend nájdete vo vnútri nasledujúce súbory:

  1. NDepend.Console - používa sa na integráciu s procesom zostavenia
  2. NDepend.PowerTools - zbierka statických analyzátorov typu open-source
  3. NDepend.VisualStudioExtension.Installer - inštaluje rozšírenie Visual Studio pre NDepend
  4. VisualNDepend - klient GUI pre NDepend

Môžete nainštalovať rozšírenie Visual Studio o NDepend jedným z nasledujúcich dvoch spôsobov:

  1. Spustite program NDepend.VisualStudioExtension.Installer
  2. Spustite VisualNDepend a zvoľte „Install Visual Studio Extension“

Akonáhle je nainštalované rozšírenie Visual Studio pre NDepend, môžete v rámci Visual Studio IDE využívať metriky, pravidlá, správy, grafy, výsledky analyzátora a nástroje. Môžete tiež využiť výhody Visual NDepend a analyzovať svoje riešenia a projekty bez toho, aby ste museli spúšťať Visual Studio.

Rozšírenie Visual Studio pre NDepend je k dispozícii pre Visual Studio 2010 prostredníctvom Visual Studio 2017. Upozorňujeme, že ho používam s Visual Studio 2017.

Analýza zdrojového kódu pomocou NDepend

Ak chcete začať analyzovať svoj zdrojový kód, kliknite na možnosť „Analyzovať riešenia VS a projekty VS“. Ďalšie dostupné možnosti sú „Analyzovať zostavy .Net v priečinku“, „Analyzovať sadu zostáv .Net“ a „Porovnať 2 verzie kódovej základne.“ Táto posledná možnosť vám umožňuje porovnať dve verzie - pekná vlastnosť!

Kvôli jednoduchosti použijem zdrojový kód z jedného z mojich posledných článkov („Ako používať Lamar v ASP.Net Core“). Po kliknutí na „Analyzovať riešenia VS a projekty VS“ sa zobrazí nové okno, ako je to znázornené na obrázku 1 nižšie.

Teraz môžete kliknúť na „Prehliadať“ a určiť súbor riešenia projektu, ktorý má NDepend analyzovať.

Nakoniec kliknite na „Analyzovať jednu zostavu .Net“, čím spustíte analýzu, ako je to znázornené na obrázku 3 nižšie.

Spustí sa analýza kódu vybraného projektu. Po dokončení analýzy NDepend zobrazí okno s nasledujúcimi možnosťami:

  • Zobraziť informačný panel NDepend
  • Zobraziť interaktívny graf NDepend
  • Pravidlá kódu prehliadača NDepend
  • Zatvorte dialógové okno

Poďme sa pozrieť na hlavný panel NDepend. Takto vyzerá výstup:

NDepend zobrazuje riadky kódu, informácie o druhoch, dlhu, komentáre v zdrojovom kóde, informácie o pokrytí, zložitosť metódy, brány kvality a pravidlá, ktoré boli porušené, a ďalšie problémy.

Funkcie NDepend

Graf závislosti a matica závislostí

NDepend vám tiež ukáže graf závislostí a maticu závislostí vášho kódu. Zatiaľ čo prvý poskytuje grafické zobrazenie závislostí vo vašom projekte, druhý poskytuje tabuľkové zobrazenie vášho kódu organizovaného podľa závislostí na menných priestoroch a typoch.

Trendové grafy

Grafy trendov sú k dispozícii na hlavnom paneli. Tieto grafy poskytujú ukážku toho, ako sa časom zmenila kvalita zdrojového kódu projektu. Môžete si tiež vytvoriť svoje vlastné trendové grafy.

Cyklomatická zložitosť

Cyklomatická zložitosť je kvantitatívne meranie lineárne nezávislých dráh v zdrojovom kóde, ktoré vám pomôže pochopiť zložitosť vášho programu a zlepšiť pokrytie kódu. Môžete využiť výhodu NDepend na analýzu cyklomatickej zložitosti kódu vašej aplikácie. Viac o cyklomatickej zložitosti sa dočítate v tomto článku.

Dopytovanie pomocou CQLinq

CQLinq je jednou z najvýraznejších funkcií NDepend. CQLinq umožňuje dotazovať sa na sieťový kód pomocou LINQ. Môžete využiť výhody CQLinq na dopytovanie kódu dlhu, problémov, pravidiel a brán kvality.

Pozrime sa na príklad. Nasledujúci dopyt CQLinq zobrazuje názvy metód a cyklomatickú zložitosť nere abstraktných metód, ktoré majú cyklomatickú zložitosť väčšiu ako 20, zoradené zostupne podľa hodnoty cyklomatickej zložitosti.

od m v Application.Methods

kde m.CyclomaticComplexity> = 20 &&! m.IsAbstract

zoradiť podľa m.CyclomaticComplexity zostupne

vyberte nový {m, m.CyclomaticComplexity}

Tu je ďalší príklad dotazu CQLinq. Tento po spustení zobrazí názvy metód, ktoré majú viac ako 100 riadkov kódu.

od m v Metódy, kde m.NbLinesOfCode> 100 vyberte m

Ak sa chcete dozvedieť viac informácií o CQLinq, môžete si prečítať dokumentáciu NDepend tu.

NDepend je nástroj na analýzu statického kódu, ktorý vám môže poskytnúť cenné informácie o kóde vašej aplikácie. NDepend môžete spustiť ako samostatnú aplikáciu alebo ako súčasť Visual Studio. Aj keď NDepend nie je zadarmo, je primerane lacný vzhľadom na jeho výkonné schopnosti a je k dispozícii pre všetky posledné verzie Visual Studio.

Ak chcete skvelý zdroj na učenie sa NDepend, veľmi odporúčam kurz Pluralsight „Praktická NDepend“ od Erica Dietricha.

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