【发布时间】:2013-08-30 08:46:47
【问题描述】:
我刚刚在阅读top 100 signs of spaghetti code 时遇到了第 4 条,它简单地说:
if ($status == "awake"){
$actitivity = "Writing spaghetti code";
} else if ($healthstatus == "OK"){
$activity = "Sleep";
} else {
print "CALL 911 IMMEDIATELY!";
}
我在other spaghetti discussions 中看到了这种多重 if-else 模式。我有点困惑为什么会这样,即使它适用于这个例子。
上面的例子不好是因为
第一个变量是
actitivity,表示编码器需要一些睡眠,所以这是个玩笑,或者不应在逻辑期间输出视图,或者
if/else 太多的原因
编辑不要介意第二部分,因为嵌套条件和多次返回,这很糟糕
在other spaghetti discussions链接中,是不是很糟糕,因为
- 逻辑中有return,这会中断流程,或者
- 太多if/else 堆积在彼此之上...?
【问题讨论】:
-
最终,大部分都可以归结为Cyclomatic Complexity旗下的正式计算机科学。
-
啊,谢谢你的链接!这是每个人都试图描述的非常清晰的模型。更多节点或更改 -> 更复杂 -> 更难阅读 -> 意大利面条。
-
是的,就是这样。但这不仅难以阅读,而且也难以预测。每增加一个节点,代码块的维护和测试就会变得更加困难。
标签: php coding-style