Programavimas

Išmatuokite savo .Net kodo kokybę naudodami „NDepend“

Programos kodo kokybės vertinimas dažnai yra subjektyvus procesas. Štai kodėl mes pereiname prie kodų metrikos - kiekybinių matavimų, kurie suteikia vertingos įžvalgos apie mūsų programos kodą. Kūrėjai gali pasinaudoti kodo metrika, kad suprastų kodo kokybę, suprastų galimas problemas ir nustatytų, kuriuos tipus ir metodus reikia atnaujinti, kad pagerėtų kokybė.

Statinio kodo analizės įrankiai naudojami norint įvertinti kodo kokybę programoje, nevykdant programos. .Net yra daugybė statinio kodo analizės įrankių. Tai apima „FxCop“, „StyleCop“, „ReSharper“, „CodeIt.Right“, „NDepend“ ir kt. Šiame straipsnyje aptariama, kaip galime naudoti „NDepend“, kad vizualizuotume kodo kokybę ir patvirtintume priemones jai pagerinti.

Kas yra NDepend ir kodėl jį naudoti?

„NDepend“ yra statinio kodo analizatorius, kuris puikiai integruojasi su „Visual Studio“ ir pateikia vertingą metriką kodo kokybei nustatyti. „NDepend“ pateikia šią metriką sąrašų, matricų, grafikų, medžių žemėlapių ir diagramų pavidalu. Kartu su šia metrika „NDepend“ gali analizuoti jūsų kodą ir pranešti apie pažeidimus pagal didelę taisyklių duomenų bazę.

„NDepend“ išsaugo kiekvienos analizės rezultatus, kad galėtumėte palyginti rezultatus pagerinę kodo aprėptį ar kodo kokybę. Jį galima paleisti tiek kaip atskirą programą, tiek kaip „Visual Studio“ plėtinį. Ir galite pasinaudoti „NDepend Azure DevOps“ plėtiniu, kad integruotumėte „NDepend“ su savo projektais „Azure“.

Toliau pateikiami keli ryškiausi „NDepend“ bruožai:

  • Didelis kodo taisyklių rinkinys, skirtas patikrinti atitiktį
  • Daug diagramų ir diagramų, skirtų kodo metrikai peržiūrėti
  • Puikiai integruojamas su „Visual Studio 2010“, 2012, 2013, 2015 ir 2017 m
  • Leidžia ištirti modulių priklausomybę
  • Pateikia „CQLinq“ („Code Query over LINQ“), kad būtų galima pritaikyti analizę
  • Matuoja kodo aprėptį
  • Nustato sunkiai prižiūrimą kodą ir įvertina techninę skolą
  • Kuria tendencijų diagramas

Darbo su „NDepend“ pradžia

Norėdami pradėti naudoti „NDepend“, turėsite atsisiųsti ir įdiegti jo kopiją. Iš čia galite atsisiųsti bandomąją „NDepend“ kopiją. Jis bus supakuotas kaip .zip failas.

Išpakavę „NDepend“ diegimo programos .zip failą, viduje rasite šiuos failus:

  1. NDepend.Console - naudojamas integruoti su kūrimo procesu
  2. NDepend.PowerTools - atviro kodo statinių analizatorių rinkinys
  3. „NDepend.VisualStudioExtension.Installer“ - įdiegia „Visual Studio“ plėtinį, skirtą „NDepend“
  4. „VisualNDepend“ - „NDepend“ GUI klientas

„NDepend“ „Visual Studio“ plėtinį galite įdiegti vienu iš šių dviejų būdų:

  1. Paleiskite „NDepend.VisualStudioExtension.Installer“
  2. Paleiskite „VisualNDepend“ ir pasirinkite „Install Visual Studio Extension“

Įdiegę „Visual Studio“ plėtinį, skirtą „NDepend“, galite naudoti metriką, taisykles, ataskaitas, diagramas, analizatoriaus rezultatus ir įrankius iš „Visual Studio IDE“. Taip pat galite pasinaudoti „Visual NDepend“ pranašumais, kad galėtumėte analizuoti savo sprendimus ir projektus, nepaleisdami „Visual Studio“.

„Visual Studio“ plėtinį, skirtą „NDepend“, galima naudoti „Visual Studio 2010“ per „Visual Studio 2017.“. Atkreipkite dėmesį, kad jį naudoju su „Visual Studio 2017“.

Analizuojamas šaltinio kodas naudojant „NDepend“

Norėdami pradėti analizuoti savo šaltinio kodą, galite spustelėti „Analizuoti VS sprendimus ir VS projektus“. Kitos galimos parinktys yra „Analizuoti .Net rinkinius aplanke“, „Analizuoti .Net rinkinių rinkinį“ ir „Palyginti 2 kodų bazės versijas“. Paskutinė parinktis leidžia palyginti dvi versijas - puiki funkcija!

Paprastumo sumetimais naudosiu šaltinio kodą iš vieno iš savo naujausių straipsnių čia („Kaip naudoti„ Lamar “ASP.Net Core“). Spustelėjus „Analizuoti VS sprendimus ir VS projektus“, bus parodytas naujas langas, kaip parodyta 1 paveiksle.

Dabar galite spustelėti „Naršyti“ ir nurodyti projekto, kurį norite analizuoti „NDepend“, failą.

Galiausiai spustelėkite „Analizuoti vieną .Net rinkinį“, kad pradėtumėte analizę, kaip parodyta 3 paveiksle.

Tai atliks pasirinkto projekto kodo analizę. Kai analizė bus baigta, „NDepend“ parodys langą su šiomis parinktimis:

  • Peržiūrėti „NDepend“ informacijos suvestinę
  • Rodyti „NDepend“ interaktyvųjį grafiką
  • Naršyklės NDepend kodo taisyklės
  • Uždarykite dialogą

Pasirinkime peržiūrėti „NDepend“ informacijos suvestinę. Štai kaip atrodo išvestis:

„NDepend“ rodo kodo eilutes, informaciją apie tipus, skolas, komentarus šaltinio kode, informaciją apie aprėptį, metodų sudėtingumą, kokybės vartus ir pažeistas taisykles bei kitus klausimus.

NDepend funkcijos

Priklausomybės grafikas ir priklausomybės matrica

„NDepend“ taip pat rodo jūsų kodo priklausomybės grafiką ir priklausomybės matricą. Pirmasis pateikia grafinį jūsų projekto priklausomybių vaizdą, o antrasis pateikia lentelę, rodančią jūsų kodą, suskirstytą pagal priklausomybes nuo vardų sričių ir tipų.

Tendencijų diagramos

Tendencijų diagramos pateikiamos informacijos suvestinėje. Šiose diagramose pateikiama peržiūra, kaip bėgant laikui kito projekto šaltinio kodo kokybė. Taip pat galite sukurti savo pasirinktines tendencijų diagramas.

Ciklomatinis sudėtingumas

Ciklomatinis sudėtingumas yra kiekybinis linijiškai nepriklausomų šaltinio kodų matas, kuris gali padėti suprasti programos sudėtingumą ir pagerinti kodo aprėptį. Galite pasinaudoti „NDepend“ pranašumais, kad išanalizuotumėte ciklinį sudėtingumą savo programos kode. Šiame straipsnyje galite daugiau sužinoti apie ciklomatinį sudėtingumą.

Užklausa naudojant CQLinq

„CQLinq“ yra viena ryškiausių „NDepend“ savybių. „CQLinq“ leidžia pateikti užklausą .Net kodui naudojant LINQ. Galite pasinaudoti „CQLinq“ pranašumais, norėdami pateikti užklausą dėl skolų, klausimų, taisyklių ir kokybės vartų.

Pažvelkime į pavyzdį. Šioje CQLinq užklausoje pateikiami ne abstrakčių metodų, kurių ciklomatinis sudėtingumas yra didesnis nei 20, metodų pavadinimai ir ciklinis sudėtingumas, išdėstyti mažėjančia ciklomatinio sudėtingumo vertės tvarka.

nuo m programoje. Metodai

kur m.CyclomaticComplexity> = 20 &&! m.IsAbstraktas

tvarka pagal m.CyclomaticSudėtingumas mažėjantis

pasirinkti naują {m, m.CyclomaticComplexity}

Štai dar vienas CQLinq užklausos pavyzdys. Kai bus vykdoma, bus rodomi metodų, turinčių daugiau nei 100 kodo eilučių, pavadinimai.

iš m metoduose, kur m.NbLinesOfCode> 100 pasirinkite m

Norėdami sužinoti daugiau apie „CQLinq“, skaitykite „NDepend“ dokumentaciją čia.

„NDepend“ yra statinio kodo analizės įrankis, kuris gali suteikti jums vertingos įžvalgos apie jūsų programos kodą. „NDepend“ galite paleisti kaip atskirą programą arba integruotą į „Visual Studio“. Nors „NDepend“ nėra nemokamas, atsižvelgiant į galingas jo galimybes, jis yra prieinamas ir prieinamas visoms naujausioms „Visual Studio“ versijoms.

Jei norite puikių išteklių mokytis „NDepend“, labai rekomenduoju „Pluralsight“ kursą „Praktinis NDepend“, kurį sukūrė Ericas Dietrichas.

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