Code Rule and Code Query
Hundreds of default code rules to check against best practices. Support for Code Query over C# LINQ (CQLinq) to easily customize rules and query code.
Most companies have large systems that work together, often in mysterious ways. NDepend's in-depth reporting and toolset can help your company enforce its own coding standards and maintain complex projects.
Hundreds of default code rules to check against best practices. Support for Code Query over C# LINQ (CQLinq) to easily customize rules and query code.
Explore how the code is actually structured and shed light on architectural flaws thanks to the most powerful code dependency graph and dependency matrix available in the tool industry.
For each issue, the cost to fix and the severity are estimated through smart and customizable C# formulas. Thus estimations proposed are realistic.
A unique approach to continuously keep the technical debt under control and reimburse it with time.
Quality Gates are C# LINQ (CQLinq) queries that implement PASS/FAIL criteria to code quality.
Explore the issues-set in a few clicks and focus your effort on what is urgent and important.
Import test coverage data, and make the most of it in the NDepend feature-rich context.
NDepend allows your team to accurately gauge the overall health of your application, no matter how complex it is.
Get Trend Charts about pretty much any code metrics to master the evolution of your application.
Compare two versions of a code base and its issues set, and browse diff and changes in any way you can think of.
Be warned of potential build process problems before they end up causing friction and pain.
NDepend's reporting and analysis helps architects and developers to communicate and reduce confusion.
Integrate NDepend analysis into your build process and get highly customized and detailed reports to see progression and prevent code quality degradation.
Spot too complex code at a glance thanks to unique diagramming capabilities.
Lines of Code, Cyclomatic Complexity, Coupling, Nesting Depth, Rank, NDepend supports them all (and much more).
By mapping out the structure of the project, it is much easier to see how components and dependencies are connected.
Get rid of dependency cycles between components to achieve higher code maintainability.
NDepend helps maintaining clean side-effects free code to write highly maintainable products.
Full Visual Studio and Azure DevOps integration, super fast and lightweight analysis, integration within all CI/DevOps systems, NDepend is conceived for real-world programmers.
Write your own static analyzer based on NDepend.API, or tweak existing open-sources Power Tools.
Nowadays, the technical-debt metaphor has been widely adopted by the software industry. It was coined by Ward Cunningham in 1992.
This reference article by Martin Fowler describes the technical-debt metaphor in great detail. To quote M.Fowler:
In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future.
As from NDepend v2017.1.0, NDepend estimates the technical-debt of a code base. The tool proposes many unique features to handle the technical-debt the right way:
warnif count > 0
from m in Methods
where m.CyclomaticComplexity > 10
select new {
m,
m.CyclomaticComplexity,
Debt = (3*(m.CyclomaticComplexity -10)).ToMinutes().ToDebt(),
AnnualInterest = (m.PercentageCoverage == 100 ? 10 : 120).ToMinutes().ToAnnualInterest()
}
from i in Issues
where i.WasAdded() && i.Severity.EqualsAny(Severity.Blocker, Severity.Critical)
orderby i.Debt.Value descending
select new { i, i.Debt }>
The user doesn't have to write these debt-exploration-queries since they are generated by clicking values and menus in the Dashboard:
100% customizable: Not only every facets of the debt estimation are customizable, but also the debt presentation is customizable too. Debt values can be estimated through money-amount instead of person-time and all thresholds can be adjusted in a few clicks through the NDepend Project Properties panel.
Benefits:
Related Links::