又開始看直播了,之前葉孤城他們的直播暫停了,但現在是趣直播了,昨天聽了沒故事的卓同學講的iOS開發中提高代碼質量的10件事,特此記錄下。
- 1、為什么要重視代碼質量
- 2、代碼質量不等于 性能
- 3、不要寫重復的代碼(Don’t Repeat Yourself)
- 4、一段代碼不要超過一定的長度
- 5、注意項目中的目錄結構
- 6、注意命名規范
- 7、注意代碼格式,空格、tab鍵
- 8、Code Review
- 9、添加斷言 Assert
- 10、注釋的多和少
1、為什么要重視代碼質量
言簡意賅: 為了后期更好的維護,畢竟維護的時間永遠是大于開發的時間。
想想有時一個小錯誤,經常都是花費那么一整天....
2、代碼質量不等于 性能
這是對高質量和性能做一些區別
-
代碼的質量并不等于
- 性能最好
- 最精簡
- 最易實現
-
理解為更好維護會更合適些:
- 易于理解,邏輯性強
- 可讀性高
- 方便擴展
整體來說,代碼質量還是為了更好的維護。
3、不要寫重復的代碼(Don’t Repeat Yourself)
這句話可是經典中的經典,但就像卓同學說的那樣真的落實了,反正我是沒有....
其中卓同學提到的細節點抽取,是我平常沒注意的,例如:相同的約束長度確實可以提取。
但有時趕進度,確實會直接進行復制粘貼的操作,因為時間啊,但話又說回來,進度和質量的保證其實也是自己水平的體現。
4、一段代碼不要超過一定的長度
卓同學的提示,我知道了:
- 人腦一次只能記住7±2個數字
所以呢,一個函數里的步驟不要超過7步,但實際上一般超過5步就很多了吧...
5、注意項目中的目錄結構
這個呢,我個人感受時:
- 大家可以更快找到我們需要的文件
- 也容易養成好的習慣,知道添加新文件在什么地方放
特別是當團隊人多了后,感覺會更深刻。
6、注意命名規范
駝峰法、匈牙利立法,這個倒有一些,但是一個核心規則應該是讓他人一下子就知道你這個變量或這個方法是干嘛的
能不省略的還是不省略,是為了后期啊
7、注意代碼格式,空格、tab鍵
其實這個我個人還真注意的,可以稍微對比下:
@property (nonatomic, copy) NSString *userid;
+ (NSDictionary *)modelCustomPropertyMapper {
return @{
@"url" : @"url",
@"version" : @"version"
};
}
@property(nonatomic,copy)NSString*userid;
+(NSDictionary *)modelCustomPropertyMapper {
return @{@"url" : @"url",@"version": @"version" };
}
確實就如排版一般,自己舒心,大家也舒服。
8、Code Review
對于Code Review,我們團隊還沒有進行,但聽完卓同學講后覺的真是很重要的。
記得剛開始的時候,我很不好意思把自己的代碼給人家看,怕別人的挑刺,也是對自己的沒信心,后來有一次和我們組長交流后,特別指出一些問題后,發現這是對個人一種很好的學習方式。
代碼互相看,不僅能保證基本的代碼風格差不多,更是減少bug的好方法。 上次,我同事看我某個類的代碼,一下子就發現好幾處沒用的代碼... 當然也是自身比較菜的原因咯。
畢竟對于個人:
- 沒有人能保證自己所有的代碼沒有bug
- 沒有人能保證自己所有的代碼實現是最優的
話說,應該和我們組長說一下這個事啦!??
9、添加斷言 Assert
一種預防措施,特別是對于公共使用的方法,我們無法保證他人使用傳什么值,怎么用....
就好比經常做的容錯處理,后臺傳過來的值不一定是對的...
10、注釋的多和少
越多越好 VS 越少越好,確實是不好說的,個人偏向越少越好,畢竟代碼的清晰度就應該讓他人看懂我們的意思,如果看不懂只有兩種情況,一種是對方水平不行,要么是自己技術還不到家。
當然有一些注釋還是不能少的,例如針對性說明,標記啊,解釋某種很反常規的需求.....
結束
以上就是這次直播我的筆記,非常感謝沒故事的卓同學的分享。另外備注下,卓同學的結束語,很有范!
風之積也不厚,則其負大翼也無力。
故九萬里,則風斯在下矣,而后乃今培風;
背負青天而莫之夭閼者,而后乃今將圖南。
蜩與學鳩笑之曰:“我決起而飛,槍榆枋而止,時則不至,而控于地而已矣,奚以之九萬里而南為?”
適莽蒼者,三餐而反,腹猶果然;
適百里者宿舂糧,適千里者,三月聚糧。
之二蟲又何知?
《逍遙游》