1)當(dāng)所有的商品價格是整數(shù)的時候, 我們應(yīng)該把price 定為double型的,因為說不定以后的商品,搞個1分搶購或者積分抵扣或者1毛錢搶購等的活動.這樣我們以后就不用修改代碼了(看似簡單還是看到程序員把價格設(shè)為int 型了)
2)字典轉(zhuǎn)模型不要用KVC, ?如果要用KVC可以,那么就需要對KVC進(jìn)行封裝,考慮各種數(shù)據(jù)類型之間的轉(zhuǎn)換,字典轉(zhuǎn)模型有太多的框架可以用,干嘛還要用原生的KVC,后臺返回的數(shù)據(jù)是NSnumber型的,用KVC 沒處理好,客戶端很容易崩潰的,誰用誰知道,使用別人寫好的字典轉(zhuǎn)模型,一行代碼可以解決問題,我們不要花10行以上的代碼來解決.
3)只要兩個地方需要用到的邏輯功能,我們就需要把這個邏輯功能封裝成一個方法,目前有兩個地方用到了,以后可能會有3個,4個,5個地方會用到.封裝方法寫一個工具類或者寫一個分類比較好.對項目中的很多代碼進(jìn)行提取為以后使用真的很有幫助,對刷新進(jìn)行封裝(實現(xiàn)3行代碼就可以實現(xiàn)上拉+下拉+顯示沒有更多數(shù)據(jù)),分享功能1行代碼,1行代碼對剪切圓角的方法進(jìn)行封裝,一行代碼就可以實現(xiàn)減圓角,設(shè)置圓角大小,設(shè)置邊框,設(shè)置邊框顏色,如果不進(jìn)行封裝,至少需要4行代碼吧,我的項目至少有50個地方需要剪切圓角,這樣節(jié)省的代碼量就很客觀了.總之一行代碼能解決的問題,絕對不要用兩行,兩個地方需要用到的方法就需要考慮抽取了到基類了 ,避免重復(fù)多余的代碼.
4)MVC 模式的要嚴(yán)格遵守? 數(shù)據(jù)98%的數(shù)據(jù)一定要建模型 不要從字典取,超過3個子控件的View 一定要自己封裝一個View.嚴(yán)格遵守這條規(guī)定了,90%的控制器代碼低于少于500行,少數(shù)業(yè)務(wù)邏輯超級復(fù)雜的可能會超過800行.
5)封裝,繼承 多態(tài)的使用,分類(嚴(yán)格知道定義而且要會用)
6)包一層? 用第三方的時候一定要包一層,這樣為以后更換第三方庫最準(zhǔn)備.網(wǎng)絡(luò)請求,加密一定要包一層.
7)老板分下來一個需求不要立馬開工,發(fā)現(xiàn)不合理的要及時溝通甚至?xí)o出合理的建議.
8)對項目進(jìn)行比較大的改動的時候,一步步的來,上次適配ipv6 需要更換SDK,不要一次更換幾個SDK 再提交,一個個的更換確認(rèn)沒問題了提交,讓同事update 跑跑,再更換下一個,每次更換sdk 可能會牽扯幾十個文件的刪除和增加,SVN不一定有那么智能,一步步的來.可以避免出錯.搭檔同事更換了2個SDk后再提交我這邊update,報錯了.而且錯誤很難排查.
9)最后的也是最重要的,老碼農(nóng)不堅持學(xué)習(xí),老碼農(nóng)不學(xué)習(xí)那一天連新碼農(nóng)也不如了.