開發(fā)規(guī)范的目的是保證統(tǒng)一項目成員的編碼風格惧笛,并使代碼美觀,易于項目維護。
1.項目簡介
采用 MVC 框架開發(fā)泞坦,開發(fā)語言為 Objective C。
2.項目結(jié)構(gòu)
2.1工程目錄
- AppDelegate砖顷、Assets贰锁、Info.plist等工程入口及配置文件
- Tools 自定義工具類目錄
- Views 自定義View視圖
- Networking 網(wǎng)絡(luò)請求封裝
- SDK手動導入三方SDk目錄
- Controllers 包含所有模塊目錄
- Base 基類
- movSource 本地圖片文件目錄
2.2 MVC業(yè)務邏輯(MVVM多一個vm)
類 | 說明 | 備注 |
---|---|---|
controller | 1.處理頁面展示邏輯,提示框封裝在基類 BaseViewController 中 2.頁面跳轉(zhuǎn)必須在 controller 中進行滤蝠,不要直接放在 view 中 3.當 UITableView 或者 UICollectionView 的 dataSource 包含較多代碼時豌熄,可以為該 controller 新建一個 dataSource 類 | |
viewModel | 1.邏輯計算(如訂單支付頁面, 應收金額計算的計算邏輯)2.網(wǎng)絡(luò)請求,JSON數(shù)據(jù) → 數(shù)據(jù)模型(JSON 解析) | 適合業(yè)務邏輯復雜場景 |
view | 對頁面相關(guān)聯(lián)的 view 進行封裝物咳,不要在 controller 中直接添加單個控件 | |
model | 數(shù)據(jù)模型锣险,項目中數(shù)據(jù)傳遞建議使用解析后的 model, 不要直接傳遞 Json,不利于代碼閱讀及理解 |
3.代碼結(jié)構(gòu)
在controller中代碼使用
#pragma mark -- 備注
或// MARK: -- <#注釋#> --
標記進行分段览闰,便于代碼快速查找
4.命名規(guī)則
- 類名芯肤、Protocol、結(jié)構(gòu)體和枚舉加上前綴 ——
FY
- 全局常量命名使用 f 前綴 + UpperCamelCase 命名
4.1 類焕济、結(jié)構(gòu)體
controller纷妆、Struct、enum 采用大駝峰(UpperCamelCase)命名方式, 目錄結(jié)構(gòu)可以采用圖示
4.2 成員變量晴弃、屬性
- 采用駝峰式命名(lowerCamelCase)掩幢,并使用完整的單詞
- 不建議使用 tempArr、array1上鞠、dic1 之類的命名
4.3 方法名
- 以小寫字母開頭际邻,每一個后續(xù)的單詞首字母大寫,使用完整的單詞
- 方法名不要隨意命名, 命名要精簡且語義清晰(可讀性高)芍阎,不能為了精簡犧牲可讀性
4.4 圖標文件命名規(guī)則
圖標命名規(guī)則采用單詞小寫加下劃線的方式命名世曾,前綴統(tǒng)一為icon_,對應大小的圖標名稱后加上@1x谴咸、@2x轮听、@3x后綴,表明該圖標對應幾倍圖
4.5 控件命名規(guī)則
控件類型 | 后綴(控件全稱) | 示例 |
---|---|---|
UITextView | TextView | contentTextView |
UILabel | Label | subtitleLabel |
UISlider | Slider | progressSlider |
5.代碼注釋
清晰的代碼注釋更有益于代碼閱讀岭佳、后期代碼維護血巍、bug修復。
- 定義的屬性珊随、方法等述寡,采用快捷鍵 Command + Option + / 進行標注
- 注釋分為多行注釋和單行注釋:
單行注釋
//單行注釋
多行注釋
/**
* 插入一條數(shù)據(jù)(推薦使用)
* @param model 需要插入Model
* @param tableName 表名柿隙,不可以為nil
* @return 是否插入成功
*/
- (BOOL)insertWithModel:(id _Nonnull)model tableName:(NSString * _Nonnull)tableName;
6.其他
- 對于工程內(nèi)引用的第三方庫,建議進行二次封裝鲫凶,便于后期做遷移
- 在閉包中使用 self 時使用捕獲列表
[weak self
]避免循環(huán)引用禀崖,閉包開始判斷 self 的有效性 - 表示單例的靜態(tài)屬性,一般命名為
shared
或者default
- 盡量消除
warning
- 三方庫管理工具:
CocoaPods
- 代碼托管工具:
SVN
每次提交代碼 remark要寫詳細螟炫! - IDE:
X-Code
版本號:Version 15.3