我最近在硅谷與很多公司交流,對於這一點,老外也覺得有點費解,對於Magic Value也存在疑惑,尤其說到魔法表達式,更是有點摸不到頭腦。
魔法值隨意出現,主要是影響可讀性和代碼可維護性。這聽起來,象喊口號。
if (status == 99) .....if (status == 98)
...這個99,98啥意思?
定義出來:CHECKED = 99 / AUTHED = 98
等。如果這個變量到處出現,放在一個定義處維護,明顯容易維護。
魔法表達式,就是十分冗長,不好理解。if ( a=3 || obj.getValue() == 3 && !() || ... && ...) {}
如果這一行想表達一個意思,庫存已經完了,就提前定義:boolean isGoodsExists = a=3 || obj.getValue() == 3 && !() || ... && ...;if ( isGoodsExists )
..這樣的話,閱讀快,根本不需要把表達式”密碼“破解才知道。我在美國,還是凌晨,只言片語回復一下,希望對你有幫助。
作者:知乎用戶
鏈接:https://www.zhihu.com/question/266749887/answer/313249429