我们使用软件质量分析工具来计算C代码的质量指标,例如:嵌套级别,复杂性,静态路径等。它计算的一个指标是函数中“结”的数量。这个指标意味着什么?是否希望减少结?
答案 0 :(得分:2)
Knots 已经存在了相当长的一段时间(1979,Woodward,Hennell,Hedley)。 knots 的概念基本上可以分解为你需要在软件的流程图中绘制的结(或修补/分支......)的数量,即循环,决策点,跳转。 ..
代码被认为更简单(因此更快),如果它包含比其他执行相同操作的代码更少的结。因此,您的目标是减少软件中的节数,但保持功能相同。
答案 1 :(得分:0)
Knots真正适用于非结构化的Fortran类型代码,而不适用于现代语言。它们衡量了控制流程的复杂程度。我们看过的一些程序是纯意大利面!
短语“代码被认为更简单(因此更快)”是不正确的。具有较少结的代码被认为更简单且更易于维护。与速度无关。
来自David Hedley(他们首先统计了他们)