文件命名規範: 1. 項目統一使用類首碼ZY。 2. 分類命名+後面統一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分類定義在內部並寫好文檔註釋。如果功能性分類內部方法較多可以考慮按功能命名。 3. model文件可按伺服器介面名或欄位名命名,view、 ...
文件命名規範:
1. 項目統一使用類首碼ZY。
2. 分類命名+後面統一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分類定義在內部並寫好文檔註釋。如果功能性分類內部方法較多可以考慮按功能命名。
3. model文件可按伺服器介面名或欄位名命名,view、viewModel和controller文件可按功能命名。
4. 切圖命名:home_menu_chat,->模塊_功能_具體名字,切圖命名很重要,這點可與美術溝通,讓他們直接命名好再給我們,可以大大提高開發效率,但千萬不要使用中文。
代碼規範:
1. 分類方法以zy_開頭,可與系統或者第三方框架方法區分。
2. 全局用到的字元串或者基本數據類型儘量定義成常量而不是用巨集。並且只在某一文件內部用到可用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 -> 函數響應式編程框架。