架構(gòu)/設(shè)計(jì)
- 單一職責(zé)原則
- 這是經(jīng)常被違背的原則腔丧。一個(gè)類只能干一個(gè)事情睹耐,一個(gè)方法最好也只干一件事情挎狸。比較常見的違背是
一個(gè)類既干UI的事情,又干邏輯的事情
河闰,這個(gè)在低質(zhì)量的客戶端代碼里很常見
- 這是經(jīng)常被違背的原則腔丧。一個(gè)類只能干一個(gè)事情睹耐,一個(gè)方法最好也只干一件事情挎狸。比較常見的違背是
- 行為是否統(tǒng)一科平,例如:
- 緩存是否統(tǒng)一
- 錯(cuò)誤處理是否統(tǒng)一
- 錯(cuò)誤提示是否統(tǒng)一
- 彈出框是否統(tǒng)一
- ……
- 代碼污染
- 代碼有沒有對(duì)其他模塊強(qiáng)耦合
- 重復(fù)代碼
- 開閉原則
- 面向接口編程
- 健壯性
- 是否考慮線程安全
- 數(shù)據(jù)訪問是否一致性
- 邊界處理是否完整
- 邏輯是否健壯
- 是否有內(nèi)存泄漏
- 有沒有循環(huán)依賴
- 有沒有野指針
- ……
- 錯(cuò)誤處理
- 改動(dòng)是不是對(duì)代碼的提升
- 新的改動(dòng)是打補(bǔ)丁,讓代碼質(zhì)量繼續(xù)惡化姜性,還是對(duì)代碼質(zhì)量做了修復(fù)
- 效率/性能
- 關(guān)鍵算法的時(shí)間復(fù)雜度多少瞪慧?有沒有可能有潛在的性能瓶頸
- 客戶端程序?qū)︻l繁消息和較大數(shù)據(jù)等耗時(shí)操作是否處理得當(dāng)
代碼風(fēng)格
- 可讀性
- 衡量可讀性的可以有很好實(shí)踐的標(biāo)準(zhǔn),就是 Reviewer 能否非常容易的理解這個(gè)代碼部念。如果不是弃酌,那意味著代碼的可讀性要進(jìn)行改進(jìn)
- 命名
- 命名對(duì)可讀性非常重要
- 英語用詞盡量準(zhǔn)確一點(diǎn)氨菇,必要時(shí)可以查字典
- 函數(shù)長(zhǎng)度/類長(zhǎng)度
- 函數(shù)太長(zhǎng)的不好閱讀
- 類太長(zhǎng)了,檢查是否違反的
單一職責(zé)
原則
- 注釋
- 恰到好處的注釋
- 參數(shù)個(gè)數(shù)
- 不要太多妓湘,一般不要超過 3 個(gè)
Review Your Own Code First
- 每次提交前整體把自己的代碼過一遍非常有幫助查蓉,尤其是看看有沒有犯低級(jí)錯(cuò)誤