如何计算圈复杂度?
How is cyclomatic complexity counted?
我正在阅读 Kent Beck 的“TDD by Example”,我不明白为什么他的程序的圈复杂度是小数。
In Wikipedia 复杂度定义为 M = E − N + 2P
其中 E、N 和 P 是整数。
我认为这是每个方法的独立圈复杂度的平均值 (M = E - N + 2
)。我不会自己计算,但是
- 所示的大多数方法在练习的那个点都没有条件(Kent 尽可能消除它们),因此它们的圈复杂度为 1
Bank.rate
确实有一个 if
(第 63 页)
所以平均值略高于 1 似乎是合理的。
我正在阅读 Kent Beck 的“TDD by Example”,我不明白为什么他的程序的圈复杂度是小数。
In Wikipedia 复杂度定义为 M = E − N + 2P
其中 E、N 和 P 是整数。
我认为这是每个方法的独立圈复杂度的平均值 (M = E - N + 2
)。我不会自己计算,但是
- 所示的大多数方法在练习的那个点都没有条件(Kent 尽可能消除它们),因此它们的圈复杂度为 1
Bank.rate
确实有一个if
(第 63 页)
所以平均值略高于 1 似乎是合理的。