iOS 開發(fā)規(guī)范文檔

開發(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末波附,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子不恭,更是在濱河造成了極大的恐慌叶雹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换吧,死亡現(xiàn)場離奇詭異,居然都是意外死亡钥星,警方通過查閱死者的電腦和手機沾瓦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谦炒,“玉大人贯莺,你說我怎么就攤上這事∧模” “怎么了缕探?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長还蹲。 經(jīng)常有香客問我爹耗,道長,這世上最難降的妖魔是什么谜喊? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任潭兽,我火速辦了婚禮,結(jié)果婚禮上斗遏,老公的妹妹穿的比我還像新娘山卦。我一直安慰自己,他們只是感情好诵次,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布账蓉。 她就那樣靜靜地躺著,像睡著了一般逾一。 火紅的嫁衣襯著肌膚如雪铸本。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天嬉荆,我揣著相機與錄音归敬,去河邊找鬼。 笑死,一個胖子當著我的面吹牛汪茧,可吹牛的內(nèi)容都是我干的椅亚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舱污,長吁一口氣:“原來是場噩夢啊……” “哼呀舔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扩灯,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤媚赖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后珠插,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惧磺,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年捻撑,在試婚紗的時候發(fā)現(xiàn)自己被綠了磨隘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡顾患,死狀恐怖番捂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情江解,我是刑警寧澤设预,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站犁河,受9級特大地震影響鳖枕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呼股,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一耕魄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彭谁,春花似錦吸奴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狭园,卻和暖如春读处,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唱矛。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工罚舱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留井辜,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓管闷,卻偏偏與公主長得像粥脚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子包个,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 【前言】 一份合格的代碼不應只滿足于實現(xiàn)功能, 更應該遵循良好的規(guī)范. 遵循良好的代碼規(guī)范有利于: 統(tǒng)一標準, 提...
    晴天ccc閱讀 457評論 0 2
  • 移動端iOS開發(fā)規(guī)范文檔 序言 根據(jù)網(wǎng)上的一些OC編碼規(guī)范整理歸納而成刷允,為了利于項目維護以及規(guī)范開發(fā),促進成員之間...
    Living_U閱讀 711評論 0 1
  • 1文件組織結(jié)構(gòu) 1.1結(jié)構(gòu)說明 1)iOS工程文件結(jié)構(gòu)分物理結(jié)構(gòu)(controller) 和邏輯結(jié)構(gòu)(Logic)...
    Confused小偉閱讀 832評論 0 2
  • 命名原則 1.基本原則 (1)清晰碧囊。 命名應該是以清晰為主树灶、簡潔為輔∨炊總的來講不要使用單詞的簡寫天通,除了使用非常常見...
    MichaelHuyp閱讀 3,208評論 2 28
  • 移動端iOS開發(fā)規(guī)范文檔 目錄 格式與換行 命名 Objective-C下的cocoa編碼規(guī)范 注釋要求 其他 參...
    志城閱讀 4,727評論 1 6