首页/文档/代码度量与质量/代码度量的树图可视化

代码度量的树图可视化

代码度量的树图可视化

度量视图 在 CppDepend 中提供了强大的树状图可视化功能,帮助您一目了然地了解代码库。通过将代码元素表示为嵌套矩形,树状图使您能够轻松发现模式、识别问题区域并直观地探索代码结构。

入门视频

观看入门视频 (2:14分钟)

了解如何使用树状图可视化来探索您的代码库。

简介

度量视图,代码库通过表示 矩形树图。树状图(Treemapping)是一种使用嵌套矩形显示树形结构数据的方法。CppDepend 树状图中使用的树结构是常见的代码层次结构:

  • C/C++项目包含命名空间,
  • 命名空间包含类型,
  • 类型包含方法和字段。

在树状图中,矩形代表代码元素。该选项 级别 决定单元矩形所代表的代码元素类型。该选项 级别 可以取5个值: 项目, 命名空间, 类型, 方法字段 下面的两张截图显示了同一个代码库,左边按类型级别表示,右边按命名空间级别表示。

树图代码可视化

选项 代码度量 树状图的此设置决定矩形的大小。例如,如果级别设置为 类型 度量设置为 代码行数,每个单元矩形代表一个类型,单元矩形的大小与相应类型的代码行数成正比。

如果当前正在编辑 PRQL 查询,查询匹配的代码元素集将在树状图上显示为一组蓝色矩形。在下面的屏幕截图中,一个 PRQL 查询匹配了 200 个最大的方法。这里的树状图层级是 方法 度量是 代码行数 正如预期,我们可以看到蓝色矩形代表树状图中最大的 200 个单元矩形。

下面的截图还显示,当前指向的代码元素(此处为项目) XML) 在树图上显示为红色矩形。

树图中指向的元素标红

回到顶部

常见场景

通过选择适当的组合 度量级别 值, 度量视图 有助于发现用其他方法难以察觉的模式。

太大、太复杂

CppDepend 提供了许多代码度量来发现过大和过于复杂的代码。参数过多、变量过多、代码行数过多、圈复杂度过高的方法等都应该被摒弃。同样,代码行数过多的类型也应该被摒弃。

在下面的截图中,树状图级别设置为 类型 度量是 代码行数。大矩形代表代码库中的大型类型。用鼠标悬停在矩形上会显示该类型的度量值,这里是该类型的代码行数。显然,代码树状图不仅有助于发现过大和过于复杂的代码元素,还有助于比较它们各自的大小和复杂度。

树图层级设为类型

回到顶部

缺陷定位

在下面的屏幕截图中,我们使用 PRQL 查询请求参数过多和变量过多的方法。蓝色矩形在树状图上显示匹配的方法。这里有趣的一点是,一些匹配的方法似乎是分组在一起的。因为树状图是分层视图,如果一组代码元素被分组,则意味着这些代码元素属于同一个父级。事实上,这里分组的 12 个方法属于同一个类型。

如果没有树状图,找出这 12 个方法的父类型会很困难。现在,代码质量审查人员可以将注意力集中在这个似乎比代码库其他部分包含更多缺陷的区域。

树图中缺陷较多的区域

回到顶部

自顶向下代码探索

CppDepend 树状图度量视图支持放大和缩小。这使得可以轻松缩放到特定的项目、命名空间或类。这对于探索和比较组件在代码行数方面的体量特别有用。

生产力绝不应该以代码行数来衡量。然而,在给定组织背景的情况下,计算代码行数已被证明是准确估算软件的有用度量。代码库的功能以某种方式划分到程序集、命名空间和类型中。通过树状图,这些工件变成并排排列的矩形。矩形面积,即功能权重,可以进行视觉比较。能够定期通过树状图探索代码规模,是建立对功能权重和功能成本准确认知的独特方式。

在您熟悉的代码库上尝试可视化树状图,您会惊讶地发现意想不到的功能规模。

CppDepend中的树图可视化

回到顶部

代码结构观察

选择使用 度量视图 使用不同于体积(代码行数、方法参数数量……)或复杂度的度量指标,可以揭示有趣的观察结果。

排名度量 是一种度量代码库中类型或方法流行度的代码度量。将树状图与排名度量结合使用可以清楚地看到流行类型的声明位置。这可以快速提供有关代码库中重要内容的信息。

下面的截图显示了的类型 Microsoft DLR (Dynamic Language Runtime) 以排名指标进行树状图展示的代码库。树状图表明 CallSite表达式 是 DLR 中流行的概念,这里确实如此。

可以使用如下代码指标进行同样有趣的代码结构观察 传入/传出耦合级别.

树图中的传入/传出耦合

立即试用 CppDepend

开始 14 天免费试用,畅享全部文档功能。无需信用卡。