移動端技術(shù)分享會1

參考文章:
https://juejin.cn/post/6854573206700130317

一、移動端架構(gòu)設(shè)計到底做什么臣疑?
常規(guī)來看拱撵,基本就是MVC振定、MVP、MVVM以及組件化的東西篙螟,這些東西說是架構(gòu)秒际,但本質(zhì)上就是模塊化的變種慎宾,這類東西主要是做業(yè)務(wù)架構(gòu),將一個很大的業(yè)務(wù)劃分為很多小業(yè)務(wù)甸赃,每個小業(yè)務(wù)就是一個模塊柿汛。
另一部分架構(gòu)內(nèi)容則是技術(shù)架構(gòu),一般是分層的埠对,最底層是基礎(chǔ)框架络断,包括網(wǎng)絡(luò)、存儲项玛、日志貌笨、圖片加載等第三方庫;中間層則是上層業(yè)務(wù)經(jīng)過抽象后所形成的公共業(yè)務(wù)層襟沮,也可以叫做中臺躁绸,這一塊往往包含賬號、支付臣嚣、客服净刮、地圖等相對獨立的業(yè)務(wù);最上層就是核心業(yè)務(wù)了硅则。從變動性來說淹父,基礎(chǔ)框架變動最低,公共業(yè)務(wù)層次之怎虫,上層業(yè)務(wù)變動最高暑认。
總結(jié)來看:移動端架構(gòu) = 業(yè)務(wù)架構(gòu)(模塊化) + 技術(shù)架構(gòu)(分層)

二、為什么要做架構(gòu)設(shè)計大审?
主要總結(jié)為如下幾點:
“為了讓項目看起來更有技術(shù)含量”
“大家都做架構(gòu)設(shè)計蘸际,我也得做”
“提高程序性能和可擴展性,降低后續(xù)的維護成本”
其實這些目標都比較抽象徒扶,不好衡量粮彤,做完架構(gòu)設(shè)計后未必能達到預期。
舉個例子,MVP特別流行导坟,MVP的好處就是降低耦合屿良,降低后續(xù)維護成本,但事實上惫周,用了MVP后尘惧,代碼極度膨脹,新增了很多類递递,代碼可讀性也差喷橙,很多新人上手困難,在一大堆presenter中迷失了登舞,大家想想重慢,這樣做維護成本是否真的降低了?

三逊躁、架構(gòu)設(shè)計的目標
為了尋找架構(gòu)設(shè)計的目標似踱,我們要尋找當前項目中的復雜度來源,也就是說看看當前項目中哪個方面最痛最急需改進稽煤,舉個例子吧核芽,像滴滴出行這種APP,復雜度來自于大量相似的業(yè)務(wù)線酵熙,而且這些業(yè)務(wù)線又是在不同的團隊開發(fā)轧简,那團隊協(xié)作問題就極為迫切,那我們的架構(gòu)就要圍繞這個來匾二。
換言之哮独,架構(gòu)設(shè)計的目標是解決當前項目的痛點,如果當前項目沒有痛點察藐,那就先別進行架構(gòu)設(shè)計了皮璧。

四、如何做架構(gòu)設(shè)計
架構(gòu)設(shè)計要以實用為目的分飞,不要光想著造一個世上最牛逼的架構(gòu)悴务,這樣往往是不靠譜的,我們不是救世主譬猫⊙堕埽總結(jié)下,架構(gòu)設(shè)計有三個基本原則:
1染服、合適優(yōu)于先進
適合自己當前業(yè)務(wù)的就好别洪,不要總想搞世界領(lǐng)先的架構(gòu),比如一個用戶量100萬的系統(tǒng)柳刮,光想著對標微信的架構(gòu)挖垛,那微信日活上億痒钝,適合微信的架構(gòu)未必適合自己。
2晕换、簡單優(yōu)于復雜
如同寫代碼一樣午乓,代碼量越少越簡單越好站宗,架構(gòu)設(shè)計也是一樣闸准,越簡單的架構(gòu)越牛逼。
3梢灭、演進優(yōu)于一步到位
可擴展性我們當然要考慮夷家,但是人不是神,無論你怎么去預測未來的系統(tǒng)演進敏释,總是很大可能會失算库快。所以架構(gòu)設(shè)計優(yōu)先解決當下的問題,至于后來的問題钥顽,到時候再對架構(gòu)方案進行改進义屏。
架構(gòu)設(shè)計還要考慮成本,你設(shè)計了一個很好的架構(gòu)蜂大,但是需要投入20個人闽铐,還要項目停止2個月專門做架構(gòu)開發(fā),那這種成本就太高奶浦,很難推進兄墅。拿后端來舉例,你設(shè)計了一個巨牛逼有效的架構(gòu)澳叉,但需要1000臺服務(wù)器隙咸,然后公司買不起這么多服務(wù)器,那也是白搭成洗。
這三個原則也是有優(yōu)先級的五督,具體是:
合適優(yōu)于先進 > 演化優(yōu)于一步到位 > 簡單優(yōu)于復雜
合適也就是適應當前需要是首位的,連當前需求都滿足不了談不到其他瓶殃。架構(gòu)整體發(fā)展是要不斷演進的概荷,在這個大前提下,盡量追求簡單碌燕,但也有該復雜的時候误证,就要復雜,比如生物從單細胞一直演化到如今修壕,復雜是避免不了的愈捅。

現(xiàn)在大家都對架構(gòu)設(shè)計的目的以及是否需要有了進一步的認識,下面我們講講移動端的架構(gòu)設(shè)計的實現(xiàn)方案有哪些慈鸠。
上面講了架構(gòu)設(shè)計分為技術(shù)架構(gòu)和業(yè)務(wù)架構(gòu)蓝谨,技術(shù)架構(gòu)是基礎(chǔ),業(yè)務(wù)架構(gòu)是基于技術(shù)架構(gòu)之上的。
對技術(shù)架構(gòu)進行分層:
最底層是基礎(chǔ)框架譬巫,包括網(wǎng)絡(luò)請求咖楣、數(shù)據(jù)存儲、布局約束芦昔、bug檢測诱贿、圖片加載等第三方庫;中間層則是針對當前項目的業(yè)務(wù)編寫的工具類庫咕缎,也可以叫做中臺珠十,這一塊往往包含賬號、支付凭豪、客服焙蹭、地圖等相對獨立的業(yè)務(wù),以及一些工具類:比如字符串嫂伞、數(shù)組孔厉、字典的數(shù)據(jù)轉(zhuǎn)換、系統(tǒng)UI層的一些類的擴展帖努、加解密等等撰豺。

業(yè)務(wù)層:
就是MVC、MVP然磷、MVVM以及組件化的東西郑趁,這些東西說是架構(gòu),但本質(zhì)上就是模塊化的變種姿搜,這類東西主要是做業(yè)務(wù)架構(gòu)寡润,將一個很大的業(yè)務(wù)劃分為很多小業(yè)務(wù),每個小業(yè)務(wù)就是一個模塊舅柜。
最上層就是核心業(yè)務(wù)了梭纹。從變動性來說,基礎(chǔ)框架變動最低致份,工具類庫層次之变抽,業(yè)務(wù)層變動最高。

關(guān)于業(yè)務(wù)層的架構(gòu)設(shè)計可以采用MVC氮块、MVP绍载、MVVM或者是組件化,下面具體講下幾者的區(qū)別及用途:
http://www.reibang.com/p/640352715b01

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滔蝉,一起剝皮案震驚了整個濱河市击儡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝠引,老刑警劉巖阳谍,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛀柴,死亡現(xiàn)場離奇詭異,居然都是意外死亡矫夯,警方通過查閱死者的電腦和手機鸽疾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來训貌,“玉大人制肮,你說我怎么就攤上這事⊥” “怎么了弄企?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵超燃,是天一觀的道長区拳。 經(jīng)常有香客問我,道長意乓,這世上最難降的妖魔是什么樱调? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮届良,結(jié)果婚禮上笆凌,老公的妹妹穿的比我還像新娘。我一直安慰自己士葫,他們只是感情好乞而,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慢显,像睡著了一般爪模。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荚藻,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天屋灌,我揣著相機與錄音,去河邊找鬼应狱。 笑死共郭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的疾呻。 我是一名探鬼主播除嘹,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岸蜗!你這毒婦竟也來了尉咕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤散吵,失蹤者是張志新(化名)和其女友劉穎龙考,沒想到半個月后蟆肆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡晦款,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年炎功,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缓溅。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛇损,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坛怪,到底是詐尸還是另有隱情淤齐,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布袜匿,位于F島的核電站更啄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏居灯。R本人自食惡果不足惜祭务,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怪嫌。 院中可真熱鬧义锥,春花似錦、人聲如沸岩灭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽噪径。三九已至柱恤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熄云,已是汗流浹背膨更。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缴允,地道東北人荚守。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像练般,于是被迫代替她去往敵國和親矗漾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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