Ohjelmointi

Mittaa .Net-koodisi laatu NDepend-toiminnolla

Sovelluskoodin laadun arviointi on usein subjektiivinen prosessi. Siksi siirrymme koodimittareihin - kvantitatiivisiin mittauksiin, jotka antavat arvokasta tietoa sovelluksemme koodista. Kehittäjät voivat hyödyntää koodimittareita ymmärtääksesi koodin laadun, saadakseen käsityksen mahdollisista ongelmista ja tunnistaakseen, minkä tyyppisiä ja menetelmiä on parannettava laadun parantamiseksi.

Staattisia koodianalyysityökaluja käytetään koodin laadun mittaamiseen sovelluksessa tarvitsematta suorittaa sovellusta. .Net-verkkoon on saatavana monia staattisen koodin analyysityökaluja. Näitä ovat FxCop, StyleCop, ReSharper, CodeIt.Right, NDepend jne. Tässä artikkelissa käsitellään sitä, miten voimme käyttää NDepend-sovellusta koodin laadun visualisointiin ja toimenpiteiden parantamiseen.

Mikä on NDepend ja miksi käyttää sitä?

NDepend on staattinen koodianalysaattori, joka integroituu hienosti Visual Studion kanssa ja tarjoaa arvokkaita tietoja koodin laadun määrittämiseksi. NDepend näyttää nämä tiedot luetteloiden, matriisien, kaavioiden, puukarttojen ja kaavioiden muodossa. Näiden muuttujien ohella NDepend voi analysoida koodisi ja ilmoittaa rikkomuksista suurta sääntötietokantaa vastaan.

NDepend tallentaa kunkin analyysin tulokset, joten voit verrata tuloksia sen jälkeen, kun olet parantanut koodin kattavuutta tai koodin laatua. Sitä voidaan käyttää sekä erillisenä sovelluksena että laajennuksena Visual Studiossa. Ja voit hyödyntää NDepend Azure DevOps -laajennusta integroidaksesi NDependin Azure-projektiisi.

Seuraavassa on joitain NDependin silmiinpistäviä piirteitä:

  • Suuri joukko koodisääntöjä vaatimustenmukaisuuden tarkistamiseksi
  • Monet kaaviot ja kaaviot koodimittareiden tarkastelemiseen
  • Integroituu hyvin Visual Studio 2010, 2012, 2013, 2015 ja 2017: een
  • Voit tutkia moduulien välisiä riippuvuuksia
  • Tarjoaa CQLinqin (Code Query over LINQ) analyysin mukauttamiseksi
  • Mittaa koodin kattavuutta
  • Tunnistaa vaikeasti ylläpidettävän koodin ja arvioi teknisen velan
  • Luo trendikaavioita

NDependin käytön aloittaminen

NDependin käytön aloittamiseksi sinun on ladattava ja asennettava kopio siitä. Voit ladata kokeilukopion NDependistä täältä. Se pakataan .zip-tiedostona.

Kun olet purkanut NDepend-asennusohjelman .zip-tiedoston, löydät seuraavat tiedostot sisältä:

  1. NDepend.Console - käytetään integrointiin rakennusprosessin kanssa
  2. NDepend.PowerTools - kokoelma avoimen lähdekoodin staattisia analysaattoreita
  3. NDepend.VisualStudioExtension.Installer - asentaa Visual Studio -laajennuksen NDependille
  4. VisualNDepend - NDependin GUI-asiakasohjelma

Voit asentaa NDependin Visual Studio -laajennuksen jollakin seuraavista kahdesta tavasta:

  1. Suorita NDepend.VisualStudioExtension.Installer
  2. Suorita VisualNDepend ja valitse "Asenna Visual Studio Extension"

Kun Visual Studio NDepend -laajennus on asennettu, voit hyödyntää mittareita, sääntöjä, raportteja, kaavioita, analysaattorin tuloksia ja työkaluja Visual Studio IDE: ssä. Voit myös hyödyntää Visual NDepend -palvelua analysoidaksesi ratkaisusi ja projektisi tarvitsematta käynnistää Visual Studiota.

NDependin Visual Studio -laajennus on saatavana Visual Studio 2010: lle Visual Studio 2017: n kautta. Huomaa, että käytän sitä Visual Studio 2017: n kanssa.

Lähdekoodin analysointi NDepend-toiminnolla

Aloita lähdekoodisi analysointi napsauttamalla "Analysoi VS-ratkaisuja ja VS-projekteja". Muut käytettävissä olevat vaihtoehdot ovat "Analysoi .Net-kokoonpanot kansiossa", "Analysoi joukko .Net-kokoonpanoja" ja "Vertaa kahta koodikannan versiota". Tämän viimeisen vaihtoehdon avulla voit verrata kahta rakennusta - hieno ominaisuus!

Käytän yksinkertaisuuden vuoksi lähdekoodia yhdestä viimeaikaisesta artikkelistani täällä ("Kuinka käyttää Lamaria ASP.Net Core -ohjelmassa"). Kun napsautat "Analysoi VS-ratkaisuja ja VS-projekteja", uusi ikkuna tulee näkyviin alla olevan kuvan 1 mukaisesti.

Voit nyt napsauttaa "Selaa" ja määrittää sen projektin ratkaisutiedoston, jonka haluat NDependen analysoida.

Napsauta lopuksi "Analysoi yksi .Net-kokoonpano" aloittaaksesi analyysin alla olevan kuvan 3 mukaisesti.

Tämä suorittaa koodianalyysin valitulle projektille. Kun analyysi on valmis, NDepend näyttää ikkunan, jossa on seuraavat vaihtoehdot:

  • Näytä NDepend-hallintapaneeli
  • Näytä NDepend Interactive Graph
  • Selaimen NDepend-koodisäännöt
  • Sulje valintaikkuna

Katsotaanpa katsella NDepend-hallintapaneelia. Tulos näyttää tältä:

NDepend näyttää koodirivit, tyypit, velat, lähdekoodin kommentit, kattavuustiedot, menetelmien monimutkaisuuden, laatuportit ja rikkomukset sekä muut ongelmat.

NDepend-ominaisuudet

Riippuvuuskaavio ja riippuvuusmatriisi

NDepend näyttää myös koodisi riippuvuuskaavion ja riippuvuusmatriisin. Ensimmäinen tarjoaa graafisen näkymän projektisi riippuvuuksista, jälkimmäinen tarjoaa taulukkonäkymän koodistasi järjestettynä nimitilojen ja tyyppien riippuvuuksien mukaan.

Trendikaaviot

Trendikaaviot ovat saatavilla kojelaudassa. Nämä kaaviot tarjoavat esikatselun siitä, kuinka projektin lähdekoodin laatu on muuttunut ajan myötä. Voit myös luoda omia trendikaavioita.

Syklomaattinen monimutkaisuus

Syklomaattinen monimutkaisuus on lähdekoodin lineaarisesti riippumattomien polkujen kvantitatiivinen mitta, joka voi auttaa sinua ymmärtämään ohjelman monimutkaisuuden ja parantamaan koodin kattavuutta. Voit hyödyntää NDepend-ominaisuutta analysoidaksesi sovelluksen koodin syklomaattinen monimutkaisuus. Voit lukea lisää syklomaattisesta monimutkaisuudesta tässä artikkelissa.

Kysely CQLinqin avulla

CQLinq on yksi NDependin silmiinpistävimmistä ominaisuuksista. CQLinq antaa sinun kysyä .Net-koodia LINQ: lla. Voit hyödyntää CQLinq-sovellusta kysyäksesi koodivelkaa, kysymyksiä, sääntöjä ja laatuportteja.

Katsotaanpa esimerkkiä. Seuraava CQLinq-kysely näyttää ei-abstraktien menetelmien, joiden syklomaattinen monimutkaisuus on yli 20, menetelmien nimet ja syklomaattinen monimutkaisuus järjestyksessä syklomaattisen kompleksisuuden arvon laskevassa järjestyksessä.

m: stä Application.Metodes

missä m.Syklomaattinen monimutkaisuus> = 20 &&! m.IsAbstrakti

järjestyksessä m. syklinen monimutkaisuus laskeva

valitse uusi {m, m.CyclomaticComplexity}

Tässä on toinen esimerkki CQLinq-kyselystä. Tämä suoritettaessa näyttää niiden menetelmien nimet, joissa on yli 100 koodiriviä.

m: stä Menetelmät-kohdassa, jossa m.NbLinesOfCode> 100 valitse m

Lisätietoja CQLinqista saat NDepend-dokumentaatiosta.

NDepend on staattinen koodianalyysityökalu, joka voi antaa sinulle arvokasta tietoa sovelluksesi koodista. Voit ajaa NDependea itsenäisenä sovelluksena tai integroituna Visual Studioon. Vaikka NDepend ei ole ilmainen, se on kohtuuhintainen ottaen huomioon sen tehokkaat ominaisuudet, ja se on saatavana kaikille Visual Studion uusimmille versioille.

Jos haluat upean resurssin NDependen oppimiseen, suosittelen lämpimästi Eric Dietrichin Pluralsight -kurssia "Practical NDepend".