我只是讀了top 100 signs of spaghetti code和我碰到4號,這只是指出來了:試圖避免「意大利麪代碼」,爲什麼多個if-else不好?
if ($status == "awake"){
$actitivity = "Writing spaghetti code";
} else if ($healthstatus == "OK"){
$activity = "Sleep";
} else {
print "CALL 911 IMMEDIATELY!";
}
我已經看到了這個多的if-else圖案other spaghetti discussions。我有點困惑這是爲什麼,即使它適用於這個例子。
是對上面的例子中不好的,因爲
所述第一變量是
actitivity
指示譯碼器需要一些睡眠,所以這是一個笑話,或視圖不應邏輯期間被輸出或
講講太多的if/else
編輯沒關係第二部分,這是因爲嵌套的條件和多重回報
在other spaghetti discussions鏈接的壞,是不好的,因爲
- 邏輯在它return
,打破流動,或
- 有太多if/else
堆在上面彼此的...?
最終,它的大部分內容都可以在[Cyclomatic Complexity](http://cl.wikipedia.org/wiki/Cyclomatic_complexity)的旗幟下歸結爲正式的計算機科學。 – Spudley
啊,謝謝你的鏈接!這是每個人都想描述的模式。更多節點或更改 - >更復雜 - >更難以閱讀 - >意大利麪條。 – Ben
是的,就是這樣。但這不僅難以閱讀,而且很難預測。每增加一個節點,代碼塊的維護和測試就會變得越來越困難。 – Spudley