使用McCabe公式时
M = E-N + 2C
是否考虑到数据是否仅限于仅向一个方向流动?似乎图表显示了在许多方向上流动的数据,无论这是否真的发生了。
具有一个数据流方向的代码库与另一个(非常相似的)代码库(其中数据可以来回传递)将不那么复杂。
关于Facebook,MVC和Flux的这篇文章是我所询问的一个很好的例子:http://www.infoq.com/news/2014/05/facebook-mvc-flux。他们最初使用MVC返回数据(从视图到模型,反之亦然)。一旦为Flux关闭了MVC,数据就会向一个方向流动。
答案 0 :(得分:1)
您链接的文章是将一个(误用的)建筑模式替换为另一个 "数据流的概念"没有明确定义,但对问题并不重要。
McCabe公式检查程序流程 - 非常非正式地,您可以将其视为衡量决策数量的指标。但这是通过查看每个控制语句来衡量的,因此它所测量的比例比你提出的架构变化的规模要精细得多。
让我们一起使用" McCabe公式不能测量数据流"。
如果您进行重新设计架构所需的广泛更改,那么公式当然会产生不同的结果。根据程序的分支因素,一如既往。
假设您重新设计了一个程序,以便不经常重复代码 - 特别是决策 - 。然后复杂性可能会下降。你也可以判断这是一个更好的架构。
但是,圈复杂度并不是描述任何与建筑一样大的东西的方式。这是一种查看小块代码的方法;方法,类。使用它来评估体系结构是没有意义的,因为任何体系结构都可以很好地实现。