iOS代碼規範文檔,ios代碼規範
檔案命名規範:
1. 項目統一使用類首碼ZY。
2. 分類命名+後面統一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分類定義在內部並寫好文檔注釋。如果功能性分類內部方法較多可以考慮按功能命名。
3. model檔案可按伺服器介面名或欄位名命名,view、viewModel和controller檔案可按功能命名。
4. 切圖命名:home_menu_chat,->模組_功能_具體名字,切圖命名很重要,這點可與美術溝通,讓他們直接命名好再給我們,可以大大提高開發效率,但千萬不要使用中文。
代碼規範:
1. 分類方法以zy_開頭,可與系統或者第三方架構方法區分。
2. 全域用到的字串或者基礎資料型別 (Elementary Data Type)盡量定義成常量而不是用宏。並且只在某一檔案內部用到可用static修飾,並且不要暴露在.h檔案。
3. 宏定義以ZY_開頭,並且統一大寫,以_為分隔標識。
4. 類內部方法按功能劃分,統一使用#pragma mark <#xxxx#>劃分。
5. 方法參數較多時,盡量換行讓其參數對齊,提高可讀性。
6. 方法屬性注釋盡量使用文檔注釋,可下載一個外掛程式VVDocument.
7. 定義成員變數必須遵循apple規範添加底線。
8. 控制項和屬性儘可能使用懶載入建立,這樣就可以保證用到時再建立。注意使用了懶載入建立的就不要直接用底線成員變數名訪問了,應該用get方法訪問。
9. 方法回調儘可能使用block回調,可提高代碼彙總度,但是要注意循環參考問題,建議block內部都使用weak引用。
10. 聲明字串屬性必須使用copy,代理使用weak,不過儘可能少用代理吧,用block回調更方便。
11. 注意方法和屬性、成員變數的駝峰標識命名。
12. 解構函式- (void)dealloc最好放到類最上面,第一眼就可以看到這個方法,可以方便看到是否清空資源。
13. 單個方法代碼盡量不要超過100行,單個檔案代碼不要超過800行,如超過了可以考慮進行重構最佳化。
14. 相同邏輯方法,或者多處用到的方法可以優先考慮抽成分類,其次考慮抽到一個工具方法類。
15. 定義控制項或者控制器必須在後面加上控制項名稱,例如一個imageView->UIImageView *iconView,不要直接用UIImageView *icon。
16. 判斷YES/NO/nil 採用這種寫法
17. 載入圖片建議自訂UIImage一個分類方法,例:[UIImage zy_imageNamed:@””]。能在改方法攔截,換膚可能會用到。
18. 所有網路請求以request開頭。例: 返回結果用block並對應一個data模型,和error.當error有值時為請求錯誤。 建議使用的第三方架構: YYModel -> 字典轉模型架構,效能目前與主流的架構相比效能較好,而且使用方便。 YYCategories -> 提供一些常用的分類方法,可以大大加快開發效率。 YYWebImage -> 載入網狀圖片架構,可以帶有動畫效果,比SDWebImage好用。 MJRefresh -> 下拉重新整理控制項 AFNetworking -> 網路請求 Pop -> facebook動畫架構 SVProgressHUD -> HUD提示,一個單例類,全域共用,無需反覆建立消耗效能 Masonry -> 自動布局架構 Realm -> 最近比較火的資料庫架構,據說效能秒殺coreData和sqlite,且學習成本很低。 ReactiveCocoa -> 函數響應式編程架構。