Product Review NDepend Part 1


NDepend static code analysis tool that empowers .NET architects and developers to make informed decisions. The tool estimates the Technical Debt evolution since the baseline.

- July 13, 2019

Rest of the Story:

Today, I tried a code review extension for Visual Studio.  The product NDepend

  • As it was as an extension, the installation process was simple and quick and painless
  • Setting up the product to review/analyze my solution (including many projects) was also very easy!

Very quickly (within minutes) the extension was able to analyze my code against many best practices, standards and coding techniques.  There are so many features within this product it is hard to adequately evaluate all features in one go.  I will document initial findings and feelings about this product, and hope to provide future reviews as I discover each of the features.
The immediate first thing I see is overview/dashboard of current solution/status, including 75 427 lines of code with a 5.5% debt ratio.

image

Of particular interest to me was the debt and issues identified.  The system includes 100+ code rules that can detect a wide range of code smells including complex methods, dead-code, bad object orientated usage etc..

image

Changing the sorting of issue, shows code related to each (in this case 70 rules)

image

Drilling into a few rules (by double clicking on any) you can see how this can be a very good tool to very quickly identify and put plans in place to resolve/cleanup and generally improve the code quality.  Rules can be edited, categorized and prioritized to meet your group/company standards.  Clicking on particular rules/warnings allows you to drill directly to the code/problem identified.  There is no hunting-pecking and trying to figure out what it thinks is incorrect.

image

Honestly, it is addictive to review the issues found and try to wipe them out.  Using this tool alongside Reharper R#/CodeRush it is quite easy to generally clean up the solution.  Fixing issues, re-running the analysis just to find fewer identified issues is very satisfying.
I have not mentioned anything about the product’s ability to evaluate/watch trends around code changes.  I hope to use this capability in the near future.  To be continued.