McCabe公式是否考虑数据流?

时间:2014-05-16 16:29:36

标签: code-metrics cyclomatic-complexity

使用McCabe公式时

  

M = E-N + 2C

是否考虑到数据是否仅限于仅向一个方向流动?似乎图表显示了在许多方向上流动的数据,无论这是否真的发生了。

具有一个数据流方向的代码库与另一个(非常相似的)代码库(其中数据可以来回传递)将不那么复杂。

关于Facebook,MVC和Flux的这篇文章是我所询问的一个很好的例子:http://www.infoq.com/news/2014/05/facebook-mvc-flux。他们最初使用MVC返回数据(从视图到模型,反之亦然)。一旦为Flux关闭了MVC,数据就会向一个方向流动。

1 个答案:

答案 0 :(得分:1)

您链接的文章是将一个(误用的)建筑模式替换为另一个 "数据流的概念"没有明确定义,但对问题并不重要。

McCabe公式检查程序流程 - 非常非正式地,您可以将其视为衡量决策数量的指标。但这是通过查看每个控制语句来衡量的,因此它所测量的比例比你提出的架构变化的规模要精细得多。

让我们一起使用" McCabe公式不能测量数据流"。

如果您进行重新设计架构所需的广泛更改,那么公式当然会产生不同的结果。根据程序的分支因素,一如既往。

假设您重新设计了一个程序,以便不经常重复代码 - 特别是决策 - 。然后复杂性可能会下降。你也可以判断这是一个更好的架构。

但是,圈复杂度并不是描述任何与建筑一样大的东西的方式。这是一种查看小块代码的方法;方法,类。使用它来评估体系结构是没有意义的,因为任何体系结构都可以很好地实现。