問題
這兩天工作相對平靜,準備將一些項目中常用的工具類整理出來,放到github上,以后開始項目直接就能拿來用。整理工具類的過程中發現了一些問題,所以記錄一下。順便把上次上線遇到的問題也記錄一下
TIPs
1、項目中原來是有一個庫叫做 base64 ,用于做base64 解編碼,但是在ios7 之后,系統已經提供了,stackoverflow上有問題 http://stackoverflow.com/questions/19088231/base64-decoding-in-ios-7
2、在整理代碼中發現了一些槽點。A、對工具類的命名,真的是醉了。作為一個工具類,合適的命名,也就是一看名字就知道這個類可以用來干嘛,那么后邊再來的人重復造輪子的概率會極大的降低,很多時候,后來的人是真的很難找到你已經寫好了的那個方法,故而以為沒有,所以自己才去寫一個。這就要求我們自己寫工具類的時候,對工具類的命名最好能明確表示它的意義,比如 NSStringURLUtil,NSString+MD5 通過名字就能知道它的功能。同時,在我們自己準備寫一個工具類的時候,先看看是否已經有現成的方法,避免自己重復造輪子。B、工具類,顧名思義,它應該就是一個獨立的東西,拿過來就可以用。在項目中,我發現部分工具類還依賴其他的類,沒法做到獨立,別人拿過去,就不能用啦。從代碼封裝的角度來說,這應該是很失敗的,或許是作者趕時間,還沒來得及修改,又或許是后來的人慢慢就寫亂了。所以從自身出發,我們自己寫這些跟業務毫無關系的類時候,應該做到獨立,不要引入其他依賴(大環境不算,比如 UIKit、Foundation等)。如果無法避免需要引入,那就放到業務層去,不要放在工具類一起。C 、不要把各個不相干的工具類放在一起。因為我發現項目中有一個工具類里雜合了好多其他功能,簡直就是雜貨店,處理圖片的、清除緩存的、 顏色處理的。想象一下,你家有一個超大工具箱,你要用一套扳手休單車,也要把整個工具箱拿過來,而不是拿扳手套裝,那你會有多煩人。所以不要怕分得太細,如果分類分層合適,再細也不會顯得復雜。
3、項目審核不通過,原因是提供的截圖,在APP中沒有發現。我們提供的截圖中有4張都是引導圖,只會顯示一次,所以可能審核人員都忘了有這圖了。這也算是坑,所以別去踩。
4、回憶上次項目提審那一天,我們我們把原本支持ipad和iPhone改為只支持iPhone。導致提交的時候,一直出錯。查找官方的QA,原來是只能增量支持設備,不能減量。不然會造成已經安裝了ipad應用的用戶無法使用更新包。所以要求我們在項目開始時候,就確定一個方向,避免出現上面的問題。
總結
碰到不好的代碼,我們可以一邊抱怨,但同時,也別忘了去修正,讓它變得美好。