以编程方式检查代码复杂性,可能通过 C#?

问题描述 投票:0回答:4

我对数据挖掘项目感兴趣,并且一直想创建一种分类算法来确定哪些特定签入需要代码审查,哪些可能不需要。

我已经为我的算法开发了许多启发式方法,尽管我还没有找出杀手......

如何以编程方式检查一段代码的计算复杂性?

此外,甚至更有趣的是 - 我如何不仅使用代码,还使用源代码控制存储库提供的差异来获取更好的数据..

IE:如果我增加了我正在签入的代码的复杂性 - 但它降低了剩下的代码的复杂性 - 难道这不应该被认为是“好的”代码吗?

对您对此的想法感兴趣。

更新

显然我没说清楚。 我想要这个

double codeValue = CodeChecker.CheckCode(someCodeFile);

我希望根据代码的好坏得出一个数字。 我将从 VS2008 在计算复杂性时给出的数字开始,但想转向进一步的启发式。

有人有什么想法吗? 我们将不胜感激!

c# asp.net performance artificial-intelligence complexity-theory
4个回答
3
投票

您看过NDepend吗? 该工具可用于计算代码复杂性并支持查询语言,通过该语言您可以获得应用程序上的大量数据。


0
投票

NDepend 网站包含各种指标的定义列表。决定哪些在您的环境中最重要很大程度上取决于您。

NDepend 还有一个 命令行版本,可以集成到您的构建过程中


0
投票

此外,Microsoft 的代码分析(随 VS Team Suite 一起提供)包含检查代码圈复杂度的指标,并在该数字超过特定阈值时引发构建错误(或警告)。

我不知道,但可能值得检查一下这个数字是否可以根据您的要求进行配置。然后,您可以修改构建过程,以便在签入某些内容时运行代码分析。


0
投票

请参阅语义设计 C# 指标工具,了解可计算完整文件和所有合理细分(方法、类等)的各种标准指标值的工具。

输出是一个 XML 文档,但使用 XML 阅读器从中提取所需的值应该很简单。

© www.soinside.com 2019 - 2024. All rights reserved.