《iOS開(kāi)發(fā)中提高代碼質(zhì)量》直播筆記

又開(kāi)始看直播了,之前葉孤城他們的直播暫停了,但現(xiàn)在是趣直播了,昨天聽(tīng)了沒(méi)故事的卓同學(xué)講的iOS開(kāi)發(fā)中提高代碼質(zhì)量的10件事,特此記錄下。

  • 1、為什么要重視代碼質(zhì)量
  • 2、代碼質(zhì)量不等于 性能
  • 3、不要寫重復(fù)的代碼(Don’t Repeat Yourself)
  • 4、一段代碼不要超過(guò)一定的長(zhǎng)度
  • 5、注意項(xiàng)目中的目錄結(jié)構(gòu)
  • 6、注意命名規(guī)范
  • 7、注意代碼格式,空格、tab鍵
  • 8、Code Review
  • 9、添加斷言 Assert
  • 10、注釋的多和少
1、為什么要重視代碼質(zhì)量

言簡(jiǎn)意賅: 為了后期更好的維護(hù),畢竟維護(hù)的時(shí)間永遠(yuǎn)是大于開(kāi)發(fā)的時(shí)間。
想想有時(shí)一個(gè)小錯(cuò)誤,經(jīng)常都是花費(fèi)那么一整天....

2、代碼質(zhì)量不等于 性能

這是對(duì)高質(zhì)量和性能做一些區(qū)別

  • 代碼的質(zhì)量并不等于

    • 性能最好
    • 最精簡(jiǎn)
    • 最易實(shí)現(xiàn)
  • 理解為更好維護(hù)會(huì)更合適些:

    • 易于理解,邏輯性強(qiáng)
    • 可讀性高
    • 方便擴(kuò)展

整體來(lái)說(shuō),代碼質(zhì)量還是為了更好的維護(hù)。

3、不要寫重復(fù)的代碼(Don’t Repeat Yourself)

這句話可是經(jīng)典中的經(jīng)典,但就像卓同學(xué)說(shuō)的那樣真的落實(shí)了,反正我是沒(méi)有....
其中卓同學(xué)提到的細(xì)節(jié)點(diǎn)抽取,是我平常沒(méi)注意的,例如:相同的約束長(zhǎng)度確實(shí)可以提取。

但有時(shí)趕進(jìn)度,確實(shí)會(huì)直接進(jìn)行復(fù)制粘貼的操作,因?yàn)闀r(shí)間啊,但話又說(shuō)回來(lái),進(jìn)度和質(zhì)量的保證其實(shí)也是自己水平的體現(xiàn)。

4、一段代碼不要超過(guò)一定的長(zhǎng)度

卓同學(xué)的提示,我知道了:

  • 人腦一次只能記住7±2個(gè)數(shù)字

所以呢,一個(gè)函數(shù)里的步驟不要超過(guò)7步,但實(shí)際上一般超過(guò)5步就很多了吧...

5、注意項(xiàng)目中的目錄結(jié)構(gòu)

這個(gè)呢,我個(gè)人感受時(shí):

  • 大家可以更快找到我們需要的文件
  • 也容易養(yǎng)成好的習(xí)慣,知道添加新文件在什么地方放

特別是當(dāng)團(tuán)隊(duì)人多了后,感覺(jué)會(huì)更深刻。

6、注意命名規(guī)范

駝峰法、匈牙利立法,這個(gè)倒有一些,但是一個(gè)核心規(guī)則應(yīng)該是讓他人一下子就知道你這個(gè)變量或這個(gè)方法是干嘛的

能不省略的還是不省略,是為了后期啊

7、注意代碼格式,空格、tab鍵

其實(shí)這個(gè)我個(gè)人還真注意的,可以稍微對(duì)比下:

@property (nonatomic, copy) NSString *userid;
+ (NSDictionary *)modelCustomPropertyMapper {
    return @{
             @"url"                : @"url",
             @"version"            : @"version"
             };
}
@property(nonatomic,copy)NSString*userid;
+(NSDictionary *)modelCustomPropertyMapper {
    return @{@"url" : @"url",@"version": @"version" };
}

確實(shí)就如排版一般,自己舒心,大家也舒服。

8、Code Review

對(duì)于Code Review,我們團(tuán)隊(duì)還沒(méi)有進(jìn)行,但聽(tīng)完卓同學(xué)講后覺(jué)的真是很重要的。

記得剛開(kāi)始的時(shí)候,我很不好意思把自己的代碼給人家看,怕別人的挑刺,也是對(duì)自己的沒(méi)信心,后來(lái)有一次和我們組長(zhǎng)交流后,特別指出一些問(wèn)題后,發(fā)現(xiàn)這是對(duì)個(gè)人一種很好的學(xué)習(xí)方式。

代碼互相看,不僅能保證基本的代碼風(fēng)格差不多,更是減少bug的好方法。 上次,我同事看我某個(gè)類的代碼,一下子就發(fā)現(xiàn)好幾處沒(méi)用的代碼... 當(dāng)然也是自身比較菜的原因咯。

畢竟對(duì)于個(gè)人:

  • 沒(méi)有人能保證自己所有的代碼沒(méi)有bug
  • 沒(méi)有人能保證自己所有的代碼實(shí)現(xiàn)是最優(yōu)的

話說(shuō),應(yīng)該和我們組長(zhǎng)說(shuō)一下這個(gè)事啦!??

9、添加斷言 Assert

一種預(yù)防措施,特別是對(duì)于公共使用的方法,我們無(wú)法保證他人使用傳什么值,怎么用....

就好比經(jīng)常做的容錯(cuò)處理,后臺(tái)傳過(guò)來(lái)的值不一定是對(duì)的...

10、注釋的多和少

越多越好 VS 越少越好,確實(shí)是不好說(shuō)的,個(gè)人偏向越少越好,畢竟代碼的清晰度就應(yīng)該讓他人看懂我們的意思,如果看不懂只有兩種情況,一種是對(duì)方水平不行,要么是自己技術(shù)還不到家。

當(dāng)然有一些注釋還是不能少的,例如針對(duì)性說(shuō)明,標(biāo)記啊,解釋某種很反常規(guī)的需求.....

結(jié)束

以上就是這次直播我的筆記,非常感謝沒(méi)故事的卓同學(xué)的分享。另外備注下,卓同學(xué)的結(jié)束語(yǔ),很有范!


風(fēng)之積也不厚,則其負(fù)大翼也無(wú)力。

故九萬(wàn)里,則風(fēng)斯在下矣,而后乃今培風(fēng);
背負(fù)青天而莫之夭閼者,而后乃今將圖南。
蜩與學(xué)鳩笑之曰:“我決起而飛,槍榆枋而止,時(shí)則不至,而控于地而已矣,奚以之九萬(wàn)里而南為?”
適莽蒼者,三餐而反,腹猶果然;
適百里者宿舂糧,適千里者,三月聚糧。
之二蟲(chóng)又何知?
《逍遙游》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容