iOS項目MVC實踐點(diǎn)滴(一) —— 代碼劃分和注釋

前言

近來,對公司的新項目依據(jù)MVC架構(gòu)對代碼進(jìn)行了深度拆分和重新封裝狞山,將幾千行代碼的viewController文件盡量拆分到600行以內(nèi)陈症;將業(yè)務(wù)邏輯、網(wǎng)絡(luò)請求赖瞒、數(shù)據(jù)持久化(數(shù)據(jù)存儲)和數(shù)據(jù)模型單獨(dú)封裝女揭,使代碼結(jié)構(gòu)變的清晰、易于維護(hù)栏饮。其實吧兔,iOS開發(fā)對MVC架構(gòu)的實踐算是應(yīng)用的很到位了;只是有時候項目開發(fā)周期緊袍嬉,大家為了方便把所有東西都塞進(jìn)viewController里面境蔼,開發(fā)是快了很多灶平,也造成了后面調(diào)試和維護(hù)浪費(fèi)很多時間;其次箍土,也因為之前對MVC理解的不夠深刻吧逢享。

下面內(nèi)容基本都是針對唐巧大神"這篇文章"的一次實踐,同時也參考了阿里一位大神的這一系列文章iOS應(yīng)用架構(gòu)談(1~4)涮帘,內(nèi)容包括:代碼注釋拼苍、View拼湊、VC瘦身调缨、數(shù)據(jù)模型、網(wǎng)絡(luò)層吆你、數(shù)據(jù)持久化封裝等弦叶;盡量保證代碼結(jié)構(gòu)清晰,整潔妇多。

一伤哺、MVC內(nèi)部代碼劃分:

1.viewController

#pragma mark - 生命周期(業(yè)務(wù)流程基本在這里展現(xiàn))

#pragma mark - 代理(包含了UITableView和view的事件代理等)

#pragma mark - 事件處理

#pragma mark - 私有方法(盡量不要出現(xiàn)這個模塊)

#pragma mark - getter 和 setter 

2.View

View里面基本都是UI的拼接,因此注釋相對簡單
針對控件的賦值者祖,ViewController會傳一個Model過來立莉,在setter里面給所有控件賦值

#pragma mark - 生命周期(基本是控件的創(chuàng)建和初始化)

#pragma mark - 共有方法

#pragma mark - 事件處理(通過代理,代理到VC里面處理)

#pragma mark - 私有方法(針對一些沒有必要開新類的處理七问,用方法封裝到這里)

#pragma mark - getter 和 setter(控件的構(gòu)建基本通過getter方法完成) 

3.Model

Model是數(shù)據(jù)模型蜓耻,里面聲明的變量(或者是屬性,因為變量基本是通過屬性自動合成)和服務(wù)器請求到得數(shù)據(jù)基本是一一對應(yīng)的械巡;對于復(fù)雜的界面(UITableview或)也許不能使用AutoLayout刹淌;因此,這里面多添加了一個類Layout,里面主要計算并存儲界面上要顯示內(nèi)容的高度讥耗。因此有勾,這里最多的就是私有方法

#pragma mark - 生命周期

#pragma mark - 私有方法

4.Service(MVC里面的業(yè)務(wù)層)

從ViewController盡可能的抽出所有業(yè)務(wù)邏輯封裝在這里,然后在ViewController持有Service的實例古程,業(yè)務(wù)層所有業(yè)務(wù)都針對ViewController提供接口蔼卡。因此,這里最多的就是共有接口

#pragma mark - 生命周期

#pragma mark - 公有方法(接口)

5.數(shù)據(jù)持久化

位于Service層之下挣磨,位于Model層之上雇逞;一般操作是:

  • 業(yè)務(wù)層通過網(wǎng)絡(luò)請求數(shù)據(jù)或者從文件、緩存等處讀取數(shù)據(jù)(文件趋急、緩存等和數(shù)據(jù)持久化有關(guān))喝峦;
  • 用戶操作界面,造成一些改變呜达,變化或通過view代理到ViewController谣蠢,ViewController操作Service層進(jìn)行一些業(yè)務(wù)處理(也就是數(shù)據(jù)的變化,這里的變化基本上都需要Model的配合),然后寫入文件或者寫入緩沖眉踱,亦或是通過網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程服務(wù)器挤忙。
#pragma mark - 生命周期

#pragma mark - 公有方法(接口)

最后說明:這些是個人代碼模塊的劃分和模塊內(nèi)代碼的主要分類,針對細(xì)節(jié)性的東西還需要根據(jù)項目或?qū)嶋H的業(yè)務(wù)來分谈喳。

二岩调、代碼注釋

1.首先給出幾個代碼注釋技巧:

// TODO:待處理(針對沒有實現(xiàn)的方法一般會這樣注釋)
// FIXME:待修改(針對實現(xiàn)效果不好,或代碼有問題的這樣注釋)
// ???:有疑問(針對就項目維護(hù)或項目引用開源庫睡陪,不懂得地方可以使用)
// !!!:重要信息

針對以上的注釋巴席,有專門的收集這些注釋的開源庫,可以根據(jù)個人愛好使用扭倾。

個人習(xí)慣:針對開發(fā)要使用的開源庫淀零,能不使用盡量不使用。針對調(diào)試使用的代碼庫膛壹,能使用的盡量使用(只要它對我有幫助)驾中。

2.其次就是常規(guī)的代碼注釋:

參考芳仔小腳印的博客,要相信女孩子整理東西的能力模聋,何況芳仔也是個大神肩民。

三、說說代碼規(guī)范

這個槽不吐不快链方,何況我英文很渣持痰;因為英文不好,這個規(guī)范對我來說難度有點(diǎn)大侄柔。
程序員最頭疼的事:命名

然后共啃,最打擊我的一句話是:英語學(xué)不好,菜鳥當(dāng)?shù)嚼希?/p>

我只想說一句:就讓我靜靜的彩筆到老吧暂题。

最后移剪,給出自己使用的代碼規(guī)范。當(dāng)然前提是先遵循蘋果官網(wǎng)的規(guī)范薪者。

野生程序員一枚:公司木有代碼規(guī)范纵苛,自己從各個大神博客里學(xué)習(xí)摘抄,最終自己的項目就形成了這樣的代碼規(guī)范言津,以后應(yīng)該會隨著學(xué)習(xí)和技術(shù)的提升還有很大改觀吧攻人。

如有錯誤,望批評指正悬槽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怀吻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子初婆,更是在濱河造成了極大的恐慌蓬坡,老刑警劉巖猿棉,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屑咳,居然都是意外死亡萨赁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門兆龙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杖爽,“玉大人,你說我怎么就攤上這事紫皇∥堪玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵坝橡,是天一觀的道長泻帮。 經(jīng)常有香客問我,道長计寇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任脂倦,我火速辦了婚禮番宁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赖阻。我一直安慰自己蝶押,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布火欧。 她就那樣靜靜地躺著棋电,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苇侵。 梳的紋絲不亂的頭發(fā)上赶盔,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音榆浓,去河邊找鬼于未。 笑死,一個胖子當(dāng)著我的面吹牛陡鹃,可吹牛的內(nèi)容都是我干的烘浦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼萍鲸,長吁一口氣:“原來是場噩夢啊……” “哼闷叉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脊阴,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤握侧,失蹤者是張志新(化名)和其女友劉穎蚯瞧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藕咏,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡状知,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了孽查。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饥悴。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖盲再,靈堂內(nèi)的尸體忽然破棺而出西设,到底是詐尸還是另有隱情,我是刑警寧澤答朋,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布贷揽,位于F島的核電站,受9級特大地震影響梦碗,放射性物質(zhì)發(fā)生泄漏禽绪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一洪规、第九天 我趴在偏房一處隱蔽的房頂上張望印屁。 院中可真熱鬧,春花似錦斩例、人聲如沸雄人。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽础钠。三九已至,卻和暖如春叉谜,著一層夾襖步出監(jiān)牢的瞬間旗吁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工正罢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阵漏,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓翻具,卻偏偏與公主長得像履怯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子裆泳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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