Mõni aeg tagasi sai vesteldud kirja teel Patrick Smacchiaga NDependist. Seda rakendust olen varemgi uurinud, kuid prooviversioonis CQL-i päringuid kasutada ei ole võimalik, mis tundub olevat üheks väga heaks abimeheks. Võrreldes Microsoft FxCopi või Gendramega, siis sealne viis reegleid lisada on tunduvalt parem.
Tundub, et see rakendus võiks olla olemas ettevõtetes, kus ehitatakse .NET platvormil ja hinnatakse koodi kvaliteeti. Nüüd aga väikese vestluse juurde.
Kuidas NDepend kasulik on tarkvaraarenduses?
NDepend aitab koguda reaalseid fakte koodibaasist. Tihtipeale on tarkvara arendamine kahjustatud kuulujuttude poolt milline see on. Näiteks arendaja võib väita, et suur osa hiljutisest tehtud tööst on kaetud testide poolt ja üleüldine kvaliteet on nõuetega vastavuses. NDependiga on võimalik koheselt kontrollida selliseid väiteid.
Kuna koodibaas on iga tarkvaraarendusfirma ja toote keskne vara, siis kasulikkus peaks olema silmaga nähtav. Kontrollida töövahendiga, mis koodibaasi kvaliteedis, sidususes ja arengus reaalselt toimub, on uus võimalus meeskonna jaoks. Ilma sarnase töövahendita nagu NDepend on võimalik saada ähmane idee toimuvast kasutades hulgaliselt koodiülevaateid, mis on kulukad võrreldes alternatiiviga. NDepend toob muudab suhtlust meeskonnas: enam ei pea küsima “mis toimub”, vaid saab fokuseerida “miks see juhtub nii” (leida põhjus, mitte arutleda tagajärgedest).
Millised eelised on NDependi kasutada sarnaste töövahenditega turul, näiteks Visual Studio 2010 Architect versiooniga?
Siiani tean, et NDepend on unikaalne töövahend ja me ei saa neid teistega võrrelda. NDepend läheb tunduvalt sügavamale kui Reflector, kui tegemist on kvaliteedi ja struktuuriga, kuid NDepend kasutab Reflectorit, kui on vaja dekompileerida koodi.
Visual Studio 2010 Architect tõepoolest sisaldab mõningaid kattuvusi NDependiga. See liigutus Microsofti poolt näitab, et meil on selliseid töövahendeid vaja ning oleme õnnelikud, et oleme .NET maailmas esimesed sellise tootega. VSTS2010 ja NDependi vaheline kattuvus on piiratud, peamiselt see sisaldab arhitektuuri / sidususe vaadet. VSTS2010 tuleb suurepärase arhitektuuri valideerimise ja UML diagrammide loomise võimalusega, kuid NDependil on ikka võimalus kontrollida 82 erinevat koodi mõõdikut, võrrelda erinevad versioone koodibaasist, defineerida reegleid ja konventsioone CQL abil ja teha keerulisemaid sidususe analüüse (transitive closure).
Kas NDepend toetab meetrikuid parimate praktikate osas nagu SOLID printsiibid, spartalik programmeerimine, CRAP mõõdikut?
Jah, NDepend tuleb 150 erineva eeldefineeritud konventsiooniga, mida võib koheselt ise kasutama hakata. Lisaks on võimalik endal defineerida reegleid.
* Spartaliku programmeerimise (Spartan Programming) täpsemaid CQL päringuid võib leida Patrick Smacchia ajaveebist.
* CRAP (Change Risk Analysis and Predictions) mõõdik on defineeritud järgnevalt:
CRAP(m) = complexity(m)^2 * (1 – coverage(m) / 100)^3 + complexity(m), kus complexity on meetodi keerukus (cyclomatic complexity) ja covarege on meetodi kaetavus testidega. Mida suurem väärtus on, seda raskem on seda koodihulka hallata. Java platvormil on olemas Crap4j
Kui keeruline on alustada NDependiga? Kas NDepend pakub mingisugust lahendust probleemidele, mida ta avastab ja kuidas parandada koodi kvaliteeti?
Lisame võimalikult palju dokumentatsiooni juba rakendusse ning pakume ka veebilehel hulgaliselt dokumentatsiooni, seal hulgas on ka 20 lühikest õppevideot, kuidas rakendust kasutada.
* Abi alustamiseks leiab NDependi kodulehe sektsioonist Getting started ja mõõdikute osas võib lugeda dokumentatsiooni või võtta appi väljatrükitav seletusleht (PDF).
Kas NDepend-i on võimalik saada avatud lähtekoodiga projektide jaoks soodsamalt?
Jah, kui soovite kasutada NDependi OSS projekti jaoks, siis võtke meiega ühendust.
Loe veel sarnastel teemadel:
- Arendajate vestlus – Raido Tonts, 24. august
- NHibernate 2.0, 2. september
- Visual Studio 2010, 29. september
- Dokumentatsiooni ilu, 1. aprill
- Valideerimine atribuutidega, 23. aprill
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
