Programování

Změřte kvalitu svého .Net kódu pomocí NDepend

Hodnocení kvality kódu aplikace je často subjektivní proces. Proto se obracíme na metriky kódu - kvantitativní měření, která poskytují cenné informace o kódu naší aplikace. Vývojáři mohou využít metriky kódu k pochopení kvality kódu, získat představu o potenciálních problémech a určit, které typy a metody je třeba refaktorovat, aby se zlepšila kvalita.

K měření kvality kódu v aplikaci, aniž byste ji museli spouštět, se používají nástroje pro statickou analýzu kódu. Pro .Net existuje mnoho nástrojů pro analýzu statického kódu. Patří mezi ně FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend atd. Tento článek představuje diskusi o tom, jak můžeme pomocí NDepend vizualizovat kvalitu kódu a přijmout opatření k jeho zlepšení.

Co je NDepend a proč jej používat?

NDepend je statický analyzátor kódu, který se dobře integruje s Visual Studio a poskytuje cenné metriky pro určování kvality kódu. NDepend zobrazuje tyto metriky ve formě seznamů, matic, grafů, map stromů a grafů. Spolu s těmito metrikami může NDepend analyzovat váš kód a hlásit porušení proti velké databázi pravidel.

NDepend ukládá výsledky každé analýzy, takže můžete výsledky porovnat poté, co jste vylepšili pokrytí kódu nebo kvalitu kódu. Lze jej spustit jako samostatnou aplikaci i jako rozšíření v sadě Visual Studio. A můžete využít rozšíření NDepend Azure DevOps k integraci NDepend s vašimi projekty v Azure.

Následují některé z pozoruhodných funkcí NDepend:

  • Velká sada pravidel kódu pro kontrolu souladu
  • Mnoho grafů a diagramů pro prohlížení metrik kódu
  • Pěkně se integruje s Visual Studio 2010, 2012, 2013, 2015 a 2017
  • Umožňuje vám prozkoumat závislosti mezi moduly
  • Poskytuje CQLinq (Code Query over LINQ) pro přizpůsobení analýzy
  • Měří pokrytí kódu
  • Identifikuje obtížně udržovatelný kód a odhaduje technický dluh
  • Vytváří trendové grafy

Začínáme s NDepend

Chcete-li začít používat NDepend, budete si muset stáhnout a nainstalovat jeho kopii. Zkušební kopii NDepend si můžete stáhnout zde. Bude zabalen jako soubor ZIP.

Jakmile rozbalíte soubor .zip instalačního programu NDepend, najdete uvnitř následující soubory:

  1. NDepend.Console - používá se k integraci s procesem sestavení
  2. NDepend.PowerTools - kolekce open-source statických analyzátorů
  3. NDepend.VisualStudioExtension.Installer - nainstaluje rozšíření Visual Studio pro NDepend
  4. VisualNDepend - klient GUI pro NDepend

Rozšíření Visual Studio NDepend můžete nainstalovat jedním z následujících dvou způsobů:

  1. Spusťte NDepend.VisualStudioExtension.Installer
  2. Spusťte VisualNDepend a vyberte „Install Visual Studio Extension“

Po instalaci rozšíření Visual Studio pro NDepend můžete využít metriky, pravidla, sestavy, grafy, výsledky analyzátoru a nástroje v rámci IDE sady Visual Studio. Můžete také využít výhod Visual NDepend k analýze vašich řešení a projektů, aniž byste museli spouštět Visual Studio.

Rozšíření Visual Studio pro NDepend je k dispozici pro Visual Studio 2010 prostřednictvím Visual Studio 2017. Všimněte si, že ho používám s Visual Studio 2017.

Analýza zdrojového kódu pomocí NDepend

Chcete-li začít analyzovat svůj zdrojový kód, můžete kliknout na „Analyzovat VS řešení a VS projekty.“ Další dostupné možnosti jsou „Analyzovat .net sestavy ve složce“, „Analyzovat sadu sestav .net“, a „Porovnat 2 verze kódové základny.“ Tato poslední možnost vám umožní porovnat dvě verze - pěkná vlastnost!

Pro zjednodušení budu používat zdrojový kód z jednoho z mých nedávných článků zde („Jak používat Lamar v ASP.Net Core“). Jakmile kliknete na „Analyzovat řešení VS a projekty VS“, zobrazí se nové okno, jak je znázorněno na obrázku 1 níže.

Nyní můžete kliknout na „Procházet“ a zadat soubor řešení projektu, který má NDepend analyzovat.

Nakonec kliknutím na „Analyzovat jednu sestavu .Net“ spusťte analýzu, jak je znázorněno na obrázku 3 níže.

Tím se spustí analýza kódu u vybraného projektu. Po dokončení analýzy NDepend zobrazí okno s následujícími možnostmi:

  • Zobrazit panel NDepend
  • Zobrazit interaktivní graf NDepend
  • Pravidla kódu prohlížeče NDepend
  • Zavřete dialog

Pojďme se podívat na hlavní panel NDepend. Takto vypadá výstup:

NDepend zobrazuje řádky kódu, informace o typech, dluhu, komentáře ve zdrojovém kódu, informace o pokrytí, složitost metody, brány kvality a pravidla, která byla porušena, a další problémy.

Funkce NDepend

Graf závislosti a matice závislostí

NDepend také ukazuje graf závislostí a matici závislostí vašeho kódu. Zatímco první poskytuje grafické zobrazení závislostí ve vašem projektu, druhý poskytuje tabulkové zobrazení vašeho kódu organizovaného podle závislostí na jmenných prostorech a typech.

Trendové grafy

Grafy trendů jsou k dispozici na řídicím panelu. Tyto grafy poskytují náhled na to, jak se kvalita zdrojového kódu projektu v průběhu času měnila. Můžete si také vytvořit vlastní grafy trendů.

Cyklomatická složitost

Cyklomatická složitost je kvantitativní měřítko lineárně nezávislých cest ve zdrojovém kódu, které vám pomůže pochopit složitost vašeho programu a zlepšit pokrytí kódu. NDepend můžete využít k analýze cyklomatické složitosti kódu vaší aplikace. Více o cyklomatické složitosti se dočtete v tomto článku.

Dotazování pomocí CQLinq

CQLinq je jednou z nejvýraznějších funkcí NDepend. CQLinq vám umožňuje dotazovat se na síťový kód pomocí LINQ. CQLinq můžete využít k dotazování na dluh kódu, problémy, pravidla a brány kvality.

Podívejme se na příklad. Následující dotaz CQLinq zobrazuje názvy metod a cyklomatickou složitost ne abstraktních metod, které mají cyklomatickou složitost větší než 20, seřazené sestupně podle hodnoty cyklomatické složitosti.

z m v Application.Methods

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

objednat podle m.CyclomaticComplexity sestupně

vyberte nový {m, m.CyclomaticComplexity}

Zde je další příklad dotazu CQLinq. Ten po spuštění zobrazí názvy metod, které mají více než 100 řádků kódu.

z m v Metodách, kde m.NbLinesOfCode> 100 vyberte m

Další informace o CQLinq naleznete v dokumentaci NDepend zde.

NDepend je nástroj pro analýzu statického kódu, který vám může poskytnout cenné informace o kódu vaší aplikace. NDepend můžete spustit jako samostatnou aplikaci nebo integrovanou v sadě Visual Studio. Ačkoli NDepend není zdarma, je za rozumnou cenu vzhledem k jeho výkonným schopnostem a je k dispozici pro všechny nedávné verze sady Visual Studio.

Pokud chcete skvělý zdroj pro učení NDepend, velmi doporučuji kurz Pluralsight „Practical NDepend“ od Erica Dietricha.