Question

I recently downloaded ndepend and ran an analysis on an open source project I participate in.

I did not now where to look next - a bit of visual and information overload and it turned out I don't even know where to start.

Can anyone suggest starting points?

  • What information should I look for first?
  • What points out problems in the code (in a BIG way)?
  • What would the low hanging fruit that can immediately seen?
Was it helpful?

Solution

Scott Hanselman / Stuart Celarier / Patrick Cauldwell's poster with ndepend metrics has some useful information on it. Rather than trying to break down all the heuristics being used I'd focus on only a few at a time starting with "zone of pain / zone of uselessness" and cyclomatic complexity.

There is also a podcast which covers some of the basics of the tool.

Between that and running nDepend on a few different projects you may be able to start gathering useful data that you can make into insights.

OTHER TIPS

When starting with NDepend, the most important thing is to understand what Code Rule over LINQ (CQLinq) can bring to your shop by letting you define queries on your code and rules. Here you'll find a summary and source code of all 200 default code rules.

The second most important thing to look at is dependencies, with both the dependency graph view, that works hand-in-hand with the dependency matrix view. Once you master these 2 views, you'll be able to pinpoint where the code is well layered or not, and where developers made mistake.

Then it'll be time to learn more in-depth feature, such as the possibility to compare 2 versions of your code base, the various code metrics and why they are useful, enforcing statically purity and immutability, controlling automatically test coverage...

Excellent pair of web casts (30 minute videos) where Patrick Smacchia and Filip Ekberg talk through some of the features of nDepend and how to use them:

http://codebetter.com/patricksmacchia/2012/10/31/two-screencasts-on-how-to-demystify-spaghetti-code/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top