服務化看疙,URL和Route

背景介紹

  • 當前豆拨,在后臺模塊管理中超陆,服務化产还,微服務化是大熱門,是否可以借鑒到客戶端的模塊管理宣蠕?

  • 頁面之間跳轉搁胆,之前沒想這么細弥搞。不過iOS8之后,將framework引入工程管理渠旁,接口怎么定義攀例?以前的dll的接口定義當然是五花八門,接下去的framework估計也會重蹈覆轍顾腊。能否參考后臺服務化的思想粤铭,將URL引入,讓各framework之間的關系更簡單清晰呢杂靶?

  • Three20曾經很熱梆惯,現(xiàn)在已經退潮,其中的基于URL的Route思想是有借鑒意義的

  • URL在互聯(lián)網(wǎng)被廣泛接受吗垮,還有W3C標準《饴穑現(xiàn)在后臺模塊的服務化改造,其中的信息傳遞也是基于URL格式的烁登。在客戶端是否可以借鑒怯屉?

  • routable-ios就是一個這樣的第三方庫。 Routable, an in-app URL router for iOS and Android這篇文章就是介紹這種思想的。

  • HHRouter這個star也上千了锨络。HHRouter 開源后日談這篇文章寫得也不錯蝗敢。

  • URL本質是字符串,并且有公認的標準足删,可以讓iOS和Android共同遵守。再加上JSON锁右,就可以在網(wǎng)絡和本地廣泛互聯(lián)互通了失受。這是跨平臺的方向,比價有吸引力咏瑟。

個人想法

  • 第一個場景是插件化拂到,這個層面更多的是公司間的合作了。一個例子就是支付码泞。主程序和插件之間兄旬,非常適合用URL這種模式來解耦。以前用過的銀聯(lián)支付插件余寥,用代理模式返回支付結果领铐,還要傳一個ViewController作為參數(shù),很不好用宋舷。用URL绪撵,參數(shù)放在query中,拉起支付插件祝蝠,這個過程沒有什么大的問題音诈。插件處理完后,怎樣把結果反饋給主程序绎狭?這個問題需要選合適的方法解決细溅。URL中放Block,感覺不是非常優(yōu)雅儡嘶,目前還沒看到令人信服的方案喇聊。用代理,還是用NSNotification蹦狂?隔了個framework承疲,估計也是個麻煩事。這方面需要進一步的思考鸥咖。

  • 第二個場景是平臺化燕鸽。主平臺和各業(yè)務模塊之間,也是非常適合用URL來拉起各個業(yè)務模塊的啼辣。業(yè)務部門之間啊研,基本上隔離的需求大于信息交換的需求。這種場景也存在信息回傳的問題,不過比插件化的場景頻率要低一點党远。像支付寶削解,微信企業(yè)號之類的。主工程就是一個容器沟娱,為各業(yè)務提供一個入口氛驮,用URL,能跳到相應的應用就可以了济似,當然要能回來矫废。而兩個業(yè)務之間基本上只有隔離,要聯(lián)系的話砰蠢,也是放在后臺蓖扑,客戶端由各自拉取接口更新界面就可以了。平臺化要徹底台舱,最好的方式是將主工程做成一個容器律杠,甚至首頁的內容都能通過后臺動態(tài)配置。相關技術比如ReactNative(動態(tài)特性竞惋,并且性能比H5要好)柜去,首頁要保持簡潔,減少性能的坑拆宛。業(yè)務模塊之間往隔離方向走诡蜓,各自為政,互不干涉胰挑。平臺盡量不要做具體的事蔓罚,只做管理者和中轉站。業(yè)務之間有溝通的需求瞻颂,平臺也提供一個專門的Bridge組件提供溝通機制豺谈,將影響限定在有限的范圍之內。業(yè)務最好是獨立APP的形式贡这,業(yè)務之間的溝通茬末,平臺最好不要參與,讓各業(yè)務之間自己解決盖矫。這種場景丽惭,也是適合用URL的模式來通信的。

  • 第三個場景是組件化辈双。比如一個公司內部的產品责掏,為了讓業(yè)務部門更專注于各自業(yè)務,一些公共功能湃望,做成公共組件换衬,供各業(yè)務方調用痰驱。比如用戶行為統(tǒng)計,日志瞳浦,網(wǎng)絡担映,緩存,加解密叫潦,手機信息等等蝇完。這種場景就是借用后臺服務化的場景。最基礎組件的可以叫微服務矗蕊,只提供服務被調用短蜕,不調用其他模塊(第三方庫可以調用,比如AFNetworking)拔妥。一般這種組件,業(yè)務部門還不能直接使用达箍。第二級的組件叫服務没龙,能提供具體的服務給業(yè)務調用,同時自身也調用其他服務或者微服務實現(xiàn)具體功能缎玫。這些服務之間的調用是否可以采用URL的模式硬纤?現(xiàn)實情況是沒有,比如著名的AFNetworking赃磨,F(xiàn)MDB等等筝家,對外的接口還都是具體的API函數(shù)。不過邻辉,是否可以往URL與服務化的方向發(fā)展呢溪王?比如網(wǎng)絡庫,以API的方式調用AFNetworking實現(xiàn)自己的網(wǎng)絡通訊功能值骇,同時以URL的方式對外提供服務莹菱,作為微服務組件。對于這種場景吱瘩,iOS8道伟、framework,提供了實現(xiàn)的方便條件使碾,個人還是傾向framework之間用URL來通信蜜徽。標準成熟,耦合低票摇,字符串簡單好理解拘鞋。當然,目前還沒看到具體的實現(xiàn)方案矢门,也有很多未知的困難掐禁。

  • 最后一種場景就是頁面之間的跳轉了怜械,這個已經有第三方庫這么做了。對于這個級別引入URL傅事,暫時還沒有完全支持缕允。有些頁面之間耦合緊密的,比如蹭越,跳出一個頁面修改下名字障本,保存后在上一個頁面看到修改的結果。這里天然的需求是耦合而不是隔離响鹃。組件一旦framework化驾霜,天然已經有一堵墻,隔離的需求大于耦合买置。同時組件是為了復用粪糙,而頁面往往是為了展示具體場景,是具體的使用者忿项,并沒有多少復用的需求蓉冈。所以這兩者有本質的區(qū)別。暫時轩触,這種場景還沒有URL化的強烈傾向寞酿。

參考文章

iOS頁面跳轉之Router Swift實現(xiàn)同事的文章,寫得還不錯脱柱,還有Demo例子Router

使用 Router 思想劃分模塊

Routable-iOS

iOS移動端架構的那些事

iOS界面跳轉的一些優(yōu)化方案

iOS App之間跳轉

iOS兩個App應用之間的跳轉

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末伐弹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子榨为,更是在濱河造成了極大的恐慌惨好,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件随闺,死亡現(xiàn)場離奇詭異昧狮,居然都是意外死亡,警方通過查閱死者的電腦和手機板壮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門逗鸣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绰精,你說我怎么就攤上這事撒璧。” “怎么了笨使?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵卿樱,是天一觀的道長。 經常有香客問我硫椰,道長繁调,這世上最難降的妖魔是什么萨蚕? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蹄胰,結果婚禮上岳遥,老公的妹妹穿的比我還像新娘。我一直安慰自己裕寨,他們只是感情好浩蓉,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宾袜,像睡著了一般捻艳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庆猫,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天认轨,我揣著相機與錄音,去河邊找鬼月培。 笑死嘁字,一個胖子當著我的面吹牛,可吹牛的內容都是我干的节视。 我是一名探鬼主播拳锚,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼假栓,長吁一口氣:“原來是場噩夢啊……” “哼寻行!你這毒婦竟也來了?” 一聲冷哼從身側響起匾荆,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拌蜘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后牙丽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體简卧,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年烤芦,在試婚紗的時候發(fā)現(xiàn)自己被綠了举娩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡构罗,死狀恐怖铜涉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情遂唧,我是刑警寧澤芙代,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站盖彭,受9級特大地震影響纹烹,放射性物質發(fā)生泄漏页滚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一铺呵、第九天 我趴在偏房一處隱蔽的房頂上張望裹驰。 院中可真熱鬧,春花似錦陪蜻、人聲如沸邦马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滋将。三九已至,卻和暖如春症昏,著一層夾襖步出監(jiān)牢的瞬間随闽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工肝谭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掘宪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓攘烛,卻偏偏與公主長得像魏滚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坟漱,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容