? ? ? ? 今天項目出了一個小BUG,商品詳情傭金項不顯示了,按照處理邏輯是商品不支持分銷或者分銷傭金為0,傭金項不顯示。但是,按照測試用例,一個應(yīng)該顯示傭金的商品沒有顯示傭金。打斷點聯(lián)調(diào)之后,很快就發(fā)現(xiàn)問題了,原來是 過程中為了顯示方便,存儲價格的字符串把貨幣符號也存儲了,導(dǎo)致價格字符串取float值時,為0了,然后就不顯示了。
? ? ? ? 開發(fā)項目,開始的時候命名,數(shù)據(jù)類型,格式等等,都設(shè)計的很好,很規(guī)范。慢慢的,時間長了,或者增加新需求了,或者別人接手維護(hù)自己的代碼了,然后為了方便,就會修改一些東西啦,沒按照項目規(guī)范了,隨意的寫一些量,以及隨意命名。可能,這個人一直記著還好,一旦什么時候忘了,或者又換人維護(hù)代碼了,在充分相信命名規(guī)范的前提下,經(jīng)常會犯一些低級的BUG。一個存儲價格的字符串,里面卻包含貨幣符號,他是為了顯示方便。一個+(BOOL)IsEmpty:(NSString *)命名的方法,返回YES時卻代表不為空,他認(rèn)為存在才是YES,NO是不存在。等等問題,想起來都感覺臉紅。
? ? ? ? 為了一時的方便,放棄了通用的,公認(rèn)的準(zhǔn)則,必然會導(dǎo)致后期或者后來者使用過程中的困惑以及一些低級的BUG。
? ? ? ? 存儲價格的字符串就應(yīng)該只存儲價格,以保證當(dāng)后面需要價格的數(shù)值時,可以直接使用。中途若需要顯示貨幣符號之類的需求,需要實例化一個臨時的字符串修改。IsEmpty,是否為空,為空則返回YE,不為空就返回NO。
? ? ? ? 命名,存儲等等,時刻把符合通用規(guī)則最為先決規(guī)范。