命名規(guī)范
對于命名規(guī)范這里就不多少了,蘋果給的有官方的文檔《蘋果Cocoa編碼規(guī)范》。簡單總結一下就是遵循清晰簡潔淳地、見名知意、駝峰命名的原則纱扭。其實命名參照系統的Api就可以了,如成員變量儡遮、類方法乳蛾、枚舉、block等。
前綴
加前綴可以防止和蘋果以及其他第三方庫的命名沖突肃叶。如是封裝SDK內部引用了第三方庫時蹂随,也應將三方庫重命名。
排版空格
- 關鍵詞和操作符之間加適當的空格因惭。 [必須]
正確的示范: int count = 5; //注意 = 之間的空格 錯誤的示范: int count=5;
- 方法的聲明和定義在-號或者+號與返回值之間應留一個空格岳锁。而返回值與方法名以及方法名和參數列表之間都不應該有空格例如
- (void)doSomethingWithString:(NSString *)theString { ...}
命名禁忌
- 不了用下劃線、破折號蹦魔,這不止看著丑得問題激率。
- 不要用漢字表情(不要以為這是玩笑,真有人這么干過)
- 不要用類似a1勿决、a2這種命名變量
*不要用漢語拼音
硬數據問題
項目中盡量減少硬數據柱搜,當然作為移動開發(fā)項目中硬數據占比會相對大一點,但也不要直接寫死在代碼里剥险。如不得不用硬數據,也請用字符串常量和宏從代碼塊里抽離到公共文件里統一管理宪肖。
能用字符串常量的表制,就不要用宏
- 這樣編譯速度快
- 字符串可直接進行比較
顏色值定義
現在項目UI給layout時,顏色基本都是給十六進制的顏色值控乾,以前碰到的項目里面總是大量的顏色值硬數據或者是重復定義的值么介。
- 顏色值轉換最后選位操作,而不是字符串
方法如下: +(UIColor*)colorWithRGBValue:(NSInteger)rgbValue{ return [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0x00FF00) >> 8))/255.0 blue:((float)(rgbValue & 0x0000FF))/255.0 alpha:1.0]; }
- 顏色值命名
個人總結了一個比較方便的命名蜕衡,配合xcode的聯想提示壤短,我們在用時就不需要查該值得顏 色值到底對應的是哪個變量了。 格式: 主顏色+顏色值(前兩位) 如: #define whiteColor_FF [UIColor colorWithRGBValue:0xFFFFFF] #define whiteColor_F5 [UIColor colorWithRGBValue:0xF5F5F5]
條件判斷邏輯
- 優(yōu)先使用三目運算符
表達式1 ? 表達式2 : 表達式3;
- 判斷條件可用switch語句時慨仿,就不要用if語句
switch ($expr) { case 0: // do something break; case 1: case 2: case 3: case 4: // do something default: // do something break; } 注意default這里最后做一下容錯
- 在使用if-else 時久脯,判斷條件一定要補全,注意容錯
錯誤用法1: if ($expr1) { // do something } if ($expr2) { // do something } if ($expr3) { // do something }
錯誤用法2: if ($expr1) { // do something }else if ($expr2) { // do something }
正確用法: if ($expr1) { // do something } elseif ($expr2) { // do something } else { // do something } 最后不要沒有else镰吆,else這里往往需要做容錯處理帘撰,遺漏后會導致各種情況考慮不全面從而產生bug。
Success與Failed
不要遺漏failed的邏輯万皿,如網絡請求摧找、自定義block的failed一定要做好失敗的容錯處理。
Tableview
不要將數據寫到cell內牢硅,也不要在cellForRowAtIndexPath內對cell的屬性一個個賦值蹬耘。
總結
這里只是將項目中遇到的一些奇葩代碼做一個記錄,避免這些低級錯誤减余。也許你不會這么去做综苔,但如果不定規(guī)范到時候項目中還是會出現各種奇葩代碼,即便定了規(guī)范,普遍的問題最好還是強調一下休里,因為規(guī)范可能太長蛆挫,不是誰都能有耐心細致的看完,并嚴格執(zhí)行下去妙黍,最終還是要Review來保證代碼質量悴侵。