關於條件分支過多的情況,有什麼好的、比較通用的解決方案?下面這個例子來說明一下情況
//購物車中的乙個商品
$data = ;
//判斷是否上架
if()
else
}else
}else
else if()
else
}else}}
}關於條件分支過多的情況,有什麼好的、比較通用的解決方案?下面這個例子來說明一下情況
//購物車中的乙個商品
$data = ;
//判斷是否上架
if()
else
}else
}else
else if()
else
}else}}
}
例子//bad:
//判斷是否上架
if()
}//good:
if(!上架)
if(!庫存足夠)
***//bad:
//判斷是否有優惠活動
if()
else
}else
}//good
price = 計算優惠(user, item)
function 計算優惠(user, item)
if(vip = 獲取vip會員(user))
return item.price;
}就說電商活動的場景,優惠疊加/互斥,積分啊什麼的需求可能複雜到抽方法也理不清楚,這時候可能就要把結構再理清楚一點
每種改變**/增減積分的方法都實現成職責鏈的一環串起來就好,每一環都有許可權執行自己的邏輯,對**進行修改,跳過其他環節等等
1.使用衛術句,提前return。
2.使用陣列或字典,避免分支
3.使用設計模式
TIME WAIT過多的處理方法
之所以起這樣乙個題目是因為很久以前我曾經寫過一篇介紹time wait的文章,不過當時基本屬於淺嘗輒止,並沒深入說明問題的來龍去脈,碰巧這段時間反覆被別人問到相關的問題,讓我覺得有必要全面總結一下,以備不時之需。討論前大家可以拿手頭的伺服器摸摸底,記住 ss 比 netstat 快 shell ss...
過多的ajax請求處理方案
1,定乙個全域性變數來儲存當前所有要執行的ajax請求,作為乙個佇列,只不過這個佇列有且只有乙個存在並執行。2,每次要新建並開始乙個請求是,遍歷這個請求陣列,把之前已經存在的全部停止,把新的請求放進去。這樣能保證不會有過多的ajax請求被發起。var yourquerycontainer new a...
Mysql連線錯誤過多的問題處理
1.mysql連線錯誤太多 sequelizeconnectionerror host xx.xx.xx.xx is blocked because of many connection errors unblock with mysqladmin flush hosts 檢視最大錯誤連線數 mys...