1、避免使用魔數
if($age<18){
}
這個18不太明白為什麼要這樣子。
可以將28定義在一個變數裡面,這個變數命名錶明瞭這個值的含義
$adult_age = 18;//成年的分界點年齡
if($age<$adult_age){
}
2、函式的返回結果:不要使用一個變數來儲存返回結果
一旦你知道了返回結果,就應該馬上返回。這樣做的好處,是可以減少錯誤。
3、函式帶有很多的引數。不要超過三個
如果引數很多,儘量聚合成一個model傳遞進去。比如一個陣列,一個例項都可以。
太多的引數為什麼影響方法的穩定性呢?
比如修改就會變得很麻煩。
我現在明白了。這個方法需要新加一個引數傳遞進去,那麼原來呼叫這個方法的程式碼,就得跟著改變。
在做介面的時候,經常會遇到類似的問題。
function forgot($userName, $email, $email_url, $format = 'json')
上面是三個引數。
原來別人呼叫這個函式是,
forgot($userName, $email, $email_url, $format = 'json');
現在需求要變化了,需要新增加一個引數。怎麼辦?
原來的程式碼就要跟著修改。方法並不穩定。要麼就重新開一個方法適應新的需求。要麼就修改呼叫方的呼叫程式碼。
但是有種辦可以避免這種問題
把原來傳遞引數做成陣列形式,如下:
forgot($params=array(),$format = 'json');
聚合成一個陣列。這樣可以加任意多個引數。
如何理解:php引擎的內建函式,帶有多個引數的情況呢?
設計缺陷?
4、方法的引數中含有布林引數。
這意味著,這個方法不是完成一個單一的目標。違背了單一職責。增加了複雜性。
思考:如何理解我們現在程式碼中的問題呢