1.架構(gòu)/設(shè)計
-
單一職責(zé)原則
一個類只干一件事情,一個方法只干一件事情,常見的違背:類即干UI,又干邏輯
-
行為是否統(tǒng)一
緩存/錯誤處理/錯誤提示/彈出框是否統(tǒng)一......解決為:kit下新建文件夾,所有緩存全放里面
-
代碼污染
學(xué)習(xí)解耦和則去參考第三方框架,如果想使用AFN,最好建個單例來使用,若有十個模塊需要網(wǎng)絡(luò)請求,在十個模塊里面寫了AFN,若有一天AFN不更新了,需要改十個模塊的代碼,應(yīng)該在十個類里面調(diào)自己的網(wǎng)絡(luò)工具類,而自己的網(wǎng)絡(luò)工具類封裝了AFN,若以后有改動,只需要在自己的網(wǎng)絡(luò)工具類里面改一個地方就行
代碼有沒有對其他模塊強(qiáng)耦合,比如我的模塊依賴于其他模塊,如果其他模塊不見了,我的就不行了
-
重復(fù)代碼
-
開閉原則
-
面向接口編程
-
健壯性
是否考慮線程安全
數(shù)據(jù)訪問是否一致性
邊界處理是否完整
邏輯是否健壯
是否有內(nèi)存泄露
有沒有循環(huán)依賴
有沒有野指針
-
錯誤處理
改動是不是對代碼的提升(你的改動是只是加了if來打補(bǔ)丁,讓代碼質(zhì)量繼續(xù)惡化,還是對代碼質(zhì)量做了修復(fù))
-
效率/性能
關(guān)鍵算法的事件復(fù)雜度是多少,有沒有可能有潛在的性能瓶頸(上傳圖片的時候,從相冊選擇的過程會有問題,因為圖片很大,當(dāng)打開圖片的時候,我們的內(nèi)存會增加10M的圖片,會有內(nèi)存問題)
客戶端程序?qū)︻l繁消息和較大數(shù)據(jù)等耗時操作是否處理得當(dāng)
2.代碼風(fēng)格式
-
可讀性
-
命名
-
函數(shù)長度/類長度
-
注釋
-
參數(shù)個數(shù):最好不要超過3個
每天晚上對自己的代碼過一遍,補(bǔ)充注釋,整理思路,避免低級錯誤