關(guān)于iOS組件化

1.組件化的目的是什么凳枝?

最近一兩年很多人都想在項(xiàng)目里面搞組件化抄沮,覺得搞組件化好跋核,卻鮮有人知道組件化好在哪里?組件化的目的是什么叛买?個(gè)人覺得組件化主要有兩個(gè)目的:

1.實(shí)現(xiàn)項(xiàng)目代碼的高內(nèi)聚低耦合砂代;

2.方便多人多團(tuán)隊(duì)開發(fā)(這就是大團(tuán)隊(duì)為什么那么熱衷于組件化的原因,對(duì)開發(fā)的效率的提升是十分顯著的)率挣。

2.我的項(xiàng)目組件化應(yīng)該做到什么程度刻伊?

個(gè)人認(rèn)為組件化的程度取決于項(xiàng)目的大小,當(dāng)一個(gè)項(xiàng)目一個(gè)人可以輕松開發(fā)和維護(hù)時(shí)椒功,只需要項(xiàng)目架構(gòu)保持如下圖即可:


把基礎(chǔ)層的部分抽成組件捶箱,用cocoapods來維護(hù),實(shí)現(xiàn)基礎(chǔ)層與表現(xiàn)層蛾茉,業(yè)務(wù)層去耦合讼呢,業(yè)務(wù)層與表現(xiàn)層依然耦合撩鹿。

當(dāng)項(xiàng)目變的越來越大谦炬,功能模塊越來越多,需要五到十幾個(gè)人維護(hù)的時(shí)候节沦,就需要明確組織里的每個(gè)人負(fù)責(zé)的功能模塊键思,在代碼層面也需要業(yè)務(wù)層和表現(xiàn)層區(qū)分開來,業(yè)務(wù)層和業(yè)務(wù)層之間也要區(qū)分開來甫贯,表現(xiàn)層與表現(xiàn)層之間也要區(qū)分開來吼鳞,要想做到這些,需要做很多的工作叫搁,首先要?jiǎng)澐趾霉δ苣K赔桌,保證一個(gè)模塊的表現(xiàn)層和業(yè)務(wù)層代碼在一個(gè)文件夾;然后一個(gè)模塊下的表現(xiàn)層和業(yè)務(wù)層邏輯要有一個(gè)明顯的區(qū)分渴逻;再引入一個(gè)中間件比如CTMediator疾党,作者自己寫的中間件基于CTMediator的ZZRouter,中間件用cocoapods來維護(hù)惨奕;每個(gè)模塊根據(jù)中間件提供外部調(diào)用的接口雪位,本模塊調(diào)用外部模塊,一律使用中間件來調(diào)梨撞,實(shí)現(xiàn)模塊間的去耦合雹洗。中型項(xiàng)目的理想架構(gòu)應(yīng)該如下圖:


中型項(xiàng)目理想架構(gòu)

當(dāng)一個(gè)app成為超級(jí)app需要多個(gè)團(tuán)隊(duì)共同協(xié)作開發(fā)的時(shí)候,對(duì)組件化的要求又更高了卧波,這個(gè)時(shí)候需要實(shí)現(xiàn)模塊的獨(dú)立編譯时肿,以及在主項(xiàng)目中的靜態(tài)和動(dòng)態(tài)加載,同時(shí)又要保證模塊間的通信港粱,正在完善的BeeHive就是奔著這個(gè)目標(biāo)去的螃成。

3.組件化實(shí)踐中的一些個(gè)人感悟

我們項(xiàng)目組件化方案是在去年11月底定的,最先在一個(gè)14年開發(fā)的老項(xiàng)目中實(shí)施的,采用的是上述的中型項(xiàng)目的架構(gòu)锈颗,實(shí)施過程中的工作量超乎了我們的預(yù)期顷霹,這個(gè)老項(xiàng)目本身的基礎(chǔ)層的維護(hù)做的不錯(cuò),我們把自己做的基礎(chǔ)組件做成私有pod來維護(hù)击吱,過程比較順利淋淀;再然后就是進(jìn)行模塊劃分,當(dāng)時(shí)按vc和service的最小粒度進(jìn)行了劃分覆醇,整理結(jié)束后發(fā)現(xiàn)有上百個(gè)之多朵纷,按依賴關(guān)系連起線來看的人頭皮發(fā)麻,如果按最小粒度劃分顯然不現(xiàn)實(shí)永脓,最后決定把關(guān)聯(lián)度很高的小模塊放到一起組成一個(gè)具體的模塊袍辞,這個(gè)模塊既提供vc也提供service,最后縮減成不到20個(gè)模塊常摧,這部分工作從頭到尾花了不少時(shí)間搅吁;等模塊劃分完,確認(rèn)好模塊負(fù)責(zé)人后落午,我們開始按照CTMediator的target-action方式讓每個(gè)負(fù)責(zé)人寫target和category谎懦,這個(gè)時(shí)候很多負(fù)責(zé)人因?yàn)閷?duì)這套體系的不了解出了很多問題,只有反復(fù)的去溝通交流溃斋,制定規(guī)范界拦,慢慢的大家熟悉了,問題就少了梗劫;同時(shí)由于一些接口傳參過多而采用字典傳參享甸,key為硬編碼的方式,經(jīng)常發(fā)生接口提供方改變key沒有及時(shí)通知到調(diào)用方而出錯(cuò)的問題梳侨,最后規(guī)定接口提供方的注釋一定到精確到每個(gè)key表達(dá)什么意思蛉威,有改動(dòng)立即通知調(diào)用方。最后整個(gè)組件化搞下來猫妙,導(dǎo)致提測(cè)時(shí)bug增加了不少瓷翻。但是等到后面我們對(duì)兩個(gè)新項(xiàng)目組件化的時(shí)候,因?yàn)榇蠹叶嘟M件化都又了一定的理解和認(rèn)識(shí)割坠,就很少因?yàn)榻M件化出現(xiàn)bug了齐帚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彼哼,隨后出現(xiàn)的幾起案子对妄,更是在濱河造成了極大的恐慌,老刑警劉巖敢朱,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剪菱,死亡現(xiàn)場(chǎng)離奇詭異摩瞎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)孝常,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門旗们,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人构灸,你說我怎么就攤上這事上渴。” “怎么了喜颁?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵稠氮,是天一觀的道長。 經(jīng)常有香客問我半开,道長隔披,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任寂拆,我火速辦了婚禮奢米,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘漓库。我一直安慰自己恃慧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布渺蒿。 她就那樣靜靜地躺著,像睡著了一般彪薛。 火紅的嫁衣襯著肌膚如雪茂装。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天善延,我揣著相機(jī)與錄音少态,去河邊找鬼。 笑死易遣,一個(gè)胖子當(dāng)著我的面吹牛彼妻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豆茫,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼侨歉,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了揩魂?” 一聲冷哼從身側(cè)響起幽邓,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎火脉,沒想到半個(gè)月后牵舵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柒啤,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年畸颅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了担巩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡没炒,死狀恐怖兵睛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窥浪,我是刑警寧澤祖很,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站漾脂,受9級(jí)特大地震影響假颇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜骨稿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一笨鸡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坦冠,春花似錦形耗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至判呕,卻和暖如春倦踢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侠草。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工辱挥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人边涕。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓晤碘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親功蜓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子园爷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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