HIS-度量“呼叫”

vla*_*sch 5 code-metrics

我不明白这个指标/规则的原因:

不应从超过 5 个不同的函数中调用一个函数。同一函数内的所有调用均计为 1。该规则仅限于翻译单元范围。

在我看来,这完全不直观,因为这与代码重用以及将代码拆分为常用函数而不是重复代码的方法相矛盾。

有人可以解释其原理吗?

Cod*_*tle 6

首先要说的是,基于度量的质量方法本质上有点主观和近似。遵循度量方法来交付高质量代码没有绝对的方法。

\n\n

软件复杂性需要考虑两个因素。一是内部复杂性,由每个函数内的决策复杂性(最好的例子是循环复杂性度量)和容器内函数之间的依赖复杂性(翻译单元或类)来表示。另一个是接口复杂性,衡量协作和分层组件或类之间的依赖程度,包括循环依赖程度。在 C/C++ 世界中,这是跨多个 TU 的。在Structure101术语中,复杂性的内部形式称为 \xe2\x80\x9cFat\xe2\x80\x9d,外部形式称为 \xe2\x80\x9cTangles\xe2\x80\x9d。

\n\n

回到你的问题,这个Hersteller Initiative Software \xe2\x80\x98CALLING\xe2\x80\x99 指标针对的是内部复杂性(Fat)。他们的论点似乎是,如果对单个函数有超过 5 个引用点,则该 C++ 类或 C 实现文件中可能有太多实现逻辑,因此可能需要分解为单独的模块或组件。这似乎是对软件设计和结构的一种特别狭隘的看法,并且例外列表可能与这种判断可能适用的领域一样长。

\n