65.9K
CodeProject 正在变化。 阅读更多。
Home

Visual Studio 中的行数统计技巧

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (15投票s)

2013年7月24日

CPOL

5分钟阅读

viewsIcon

75223

本文将介绍如何在 Visual Studio 的高级版和非高级版中获取应用程序的代码行数,方法是使用集成的代码度量工具(仅限高级版本)或利用巧妙的正则表达式,而无需借助 USI。

行数一直是与软件开发项目相关最常见的指标之一,尽管它并不是一个非常有意义的指标

尽管 Visual Studio 是微软的旗舰 IDE,但许多用户有时希望能够轻松访问一些内置功能,而这些功能本身并未内置。一个易于访问的“代码行数”按钮或显示可能是某些用户偶尔想要访问的,除非他们拥有“高级”版本(*高级版或旗舰版*),否则他们可能会失望。

这篇博文将介绍如何在 Visual Studio 的高级版和非高级版中获取应用程序的代码行数,方法是使用集成的代码度量工具(*仅限高级版本*)或利用巧妙的正则表达式,而无需使用第三方实用程序或工具。

为什么你需要这个?

如前所述,由于存在大量的设计模式、编程风格、命名约定和许多其他因素,行数指标通常不能提供太多有意义的信息。但是,在某些情况下,它可以用来帮助

尽管如此,在以下某些情况下它可能很有价值

  • 重构 – 在重构遗留代码或重新审视旧项目时,行数可以提供少量价值,以帮助证明初始开发过程中编码过程可能效率低下。如果可以从原始版本中删除的行数占应用程序总大小的很大一部分,同时保持功能和可读性,那么删除的行数就可以提供一个有价值的指标。
  • 复杂性 – 如果您提供了两个应用程序,一个有 1,000 行代码,另一个有 1,000,000+ 行代码,那么可以安全地假设尺寸大几个数量级的应用程序更复杂。
  • 生产力 - 与应用程序的复杂性类似,代码行数可以深入了解开发团队是否真的具有生产力。如果您有两个开发团队,并且在一段时间内(假设编码风格相似),一个团队有 1,000 行代码,而另一个团队有 5,000 行代码,那么哪个团队的生产力更高就显而易见了。

从这些例子中可以看出,几乎所有这些都要求一定程度的审查,以确保行本身是有价值和必要的。

在 Visual Studio 中确定代码行数

有几种不同的方法可以访问解决方案、项目和单个文件级别的此指标,所有这些都极大地取决于您正在运行的 Visual Studio 版本。我将在下面详细介绍每种方法,以便您可以找到最适合您环境的版本。

Visual Studio 高级版和旗舰版(*2008、2010 和 2012*)

使用 Visual Studio 的“高级”版本的一个主要好处是,您可以访问一套名为代码度量(Code Metrics)的特殊工具,该工具可用于生成有关应用程序的各种不同度量,例如复杂性、外部调用以及最终的行数。

代码度量区域可以在 Visual Studio 的主菜单下的“分析”(Analyze)选项卡中找到,如下所示

Code Metrics is available from the Analysis section of the Main Menu.

代码度量是访问高级版 Visual Studio 中行数等不同度量的一种简单方法。

选择要执行选择的范围(*是整个解决方案还是选定的项目系列*)后,您会注意到 Visual Studio 的“输出”(Output)区域应该会显示代码度量结果,其中包括几个不同的类别,可以深入其中以在您的应用程序中进行进一步分析。

Code Metrics Results

对项目进行代码度量分析的结果。

最后一个是我们正在寻找的“代码行数”

Code Metrics easily reveals the number of lines within a Project or Solution.

代码度量轻松显示项目或解决方案中的行数。

Visual Studio 非高级版本(*专业版和 Express 版*)

这是文章名称中提到的“技巧”真正发挥作用的部分。

这些非高级版本的 Visual Studio 缺少代码度量等工具来帮助确定特定项目或解决方案中的代码行数。但是,我们不必花钱去购买这些工具,也不必购买或下载第三方工具或扩展。

令人惊讶的是,这可以通过使用 Visual Studio 的“查找和替换”(Find and Replace)工具和一些正则表达式来实现

Matching Lines using a Regular Expression

使用 Visual Studio 中的“查找和替换”功能来匹配特定文件集中的每一行。

是的——这项技术将编写一系列复杂的正则表达式,这些正则表达式将实际匹配 Visual Studio 文件中的每一行代码,我们将通过以下步骤使用这些结果轻松评估应用程序中的代码行数

  1. CTRL+SHIFT+F 打开“在文件中查找”(Find in Files)提示。
  2. 在“查找选项”(Find Options)部分下选择“使用正则表达式”(Use Regular Expression)。
  3. 使用“查找范围”(Look In)下拉列表选择您的“搜索范围”(scope of your Search)。
  4. 在“查找这些文件类型”(Look at these File Types)框中进一步“确定要搜索的文件类型”。
  5. 在“查找内容”(Find What)框中输入“以下正则表达式中的一个
    //Visual Studio 2012 Version
    ^(?([^\r\n])\s)*[^\s+?/]+[^\n]*$
    
    //Versions prior to 2012
    ^:b*[^:b#/]+.*$

运行最适合您环境的表达式后,您将在“输出”(Output)窗口中找到以下内容,其中详细说明了基于您的搜索的代码行数

Matching Lines

匹配行数将显示您所选范围内的行数。

如果您发现结果严重失衡或根本不正确,我建议您检查“查找和替换”对话框中的“查找这些文件类型”框,并确保您没有针对可能不提供任何有用信息的特定文件。

字里行间。

最终,您将需要自己为应用程序中的代码行数赋予任何实际价值(它可能只是一个随着减少而变得有价值的东西),但希望这是一个很酷的正则表达式技巧,您可以从中获得一些用途。

© . All rights reserved.