【客戶端】從企業(yè)發(fā)展看客戶端架構(gòu)分層

企業(yè)成長是一個(gè)過程屠尊,摸索中前進(jìn),開天辟地做自己第一個(gè)項(xiàng)目系統(tǒng)時(shí)耕拷,需要大量的人才讼昆,實(shí)現(xiàn)項(xiàng)目的網(wǎng)絡(luò)代碼,界面代碼,數(shù)據(jù)緩存代碼浸赫,邏輯代碼闰围,存儲(chǔ)代碼。產(chǎn)品經(jīng)過研發(fā)既峡,測(cè)試羡榴,運(yùn)營,穩(wěn)定运敢,再多做幾個(gè)項(xiàng)目校仑,代碼經(jīng)過線上復(fù)雜環(huán)境的考驗(yàn)與蹂躪,逐漸成熟传惠。

一個(gè)成熟的企業(yè)迄沫,企業(yè)都會(huì)有自己成熟的(與業(yè)務(wù)無關(guān)的)基礎(chǔ)庫模塊:

1、網(wǎng)絡(luò)基礎(chǔ)庫卦方。

2羊瘩、存儲(chǔ)基礎(chǔ)庫。

3盼砍、UI 渲染基礎(chǔ)庫尘吗。

4、企業(yè)內(nèi)部常用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)庫浇坐。

企業(yè)發(fā)展了睬捶,客戶也多了,產(chǎn)品項(xiàng)目也多了吗跋,業(yè)務(wù)需求也多了侧戴。公司招的人也多了,但是你會(huì)發(fā)現(xiàn)跌宛,之前開天辟地的,很多高級(jí)研發(fā)元老變得“無事可做”了积仗。他們負(fù)責(zé)難度最大的非業(yè)務(wù)模塊已經(jīng)穩(wěn)定了疆拘。他們要不轉(zhuǎn)型帶團(tuán)隊(duì),要不轉(zhuǎn)型做業(yè)務(wù)邏輯寂曹。團(tuán)隊(duì)領(lǐng)導(dǎo)人數(shù)有限哎迄,業(yè)務(wù)邏輯是繁瑣的客戶需求,難度不大隆圆,卻耗費(fèi)大量時(shí)間和精力漱挚,往往技術(shù)水平需要不高,普通員工熟悉了系統(tǒng)架構(gòu)后渺氧,只需要在原來穩(wěn)定的架構(gòu)上作業(yè)旨涝。為了趕進(jìn)度,經(jīng)常沒天沒夜地加班加點(diǎn)地干侣背“谆—— 所以慨默,很多時(shí)候,離開是他們是最好的選擇弧腥。對(duì)于企業(yè)厦取,能用中低級(jí)員工解決業(yè)務(wù)的問題,也可以有效控制成本管搪。

這時(shí)候虾攻,問題來了。企業(yè)要保證產(chǎn)品的穩(wěn)定更鲁,員工的流動(dòng)不能影響產(chǎn)品正常運(yùn)轉(zhuǎn)霎箍。所以我們?cè)谠O(shè)計(jì)系統(tǒng)架構(gòu)的時(shí)候,要減少模塊間的耦合岁经,能夠讓員工更好地分工朋沮,一方面,員工在做自己熟悉的模塊能更有效地產(chǎn)出缀壤。其次也在他離開的時(shí)候樊拓,本模塊的團(tuán)隊(duì)對(duì)接即可,不影響其它模塊的功能塘慕。所以下面討論下產(chǎn)品的架構(gòu)筋夏。


客戶端架構(gòu)分層:

1、UI 層:負(fù)責(zé)直接面向用戶的界面渲染图呢,觸發(fā)用戶行為的操作事件条篷。

2、網(wǎng)絡(luò)層:負(fù)責(zé)復(fù)雜的網(wǎng)絡(luò)IO蛤织,異步方式進(jìn)行數(shù)據(jù)發(fā)送和接收赴叹,異常時(shí)能返回相關(guān)錯(cuò)誤。

3指蚜、本地存儲(chǔ)層:負(fù)責(zé)存儲(chǔ)用戶或者系統(tǒng)的屬性型數(shù)據(jù)乞巧,日志型數(shù)據(jù),文件數(shù)據(jù)摊鸡。

4绽媒、數(shù)據(jù)緩存層:系統(tǒng)數(shù)據(jù)中心,緩存在內(nèi)存免猾,存儲(chǔ)屬性型數(shù)據(jù)是辕,日志型數(shù)據(jù),或者動(dòng)態(tài)改變的邏輯型數(shù)據(jù)猎提。

5获三、協(xié)議層:網(wǎng)絡(luò)層收到數(shù)據(jù)包,然后解包,封裝給邏輯調(diào)用的接口石窑,目的是為了將協(xié)議與邏輯解耦牌芋。

6、邏輯層:負(fù)責(zé)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯松逊。

通常的架構(gòu)有這幾個(gè)層躺屁。其中前3個(gè):網(wǎng)絡(luò)層,UI層经宏,存儲(chǔ)層都是與業(yè)務(wù)無關(guān)的∠睿現(xiàn)在技術(shù)日新月異,更換技術(shù)模型也是常有的事烁兰。協(xié)議層作為一個(gè)過渡耐亏,銜接底層和邏輯,讓寫邏輯的人只關(guān)心帶具體參數(shù)接口的傳遞沪斟,而不是復(fù)雜的協(xié)議广辰。分層的目的是為了根據(jù)系統(tǒng)功能進(jìn)行分工,各個(gè)層之間進(jìn)行解耦主之,層與層之間通過接口進(jìn)行銜接择吊,只要接口不變,每個(gè)層的內(nèi)部變動(dòng)不會(huì)影響其它層的功能槽奕。


常用設(shè)計(jì)模式:

1几睛、MVC 模式:Moudle,數(shù)據(jù)層粤攒,View所森,UI 層。Contorl 邏輯層夯接,銜接數(shù)據(jù)層和UI層焕济。

2、單鍵模式:一般數(shù)據(jù)中心模塊盔几,做成單鍵實(shí)例吼蚁,對(duì)數(shù)據(jù)進(jìn)行集中管理,供各個(gè)模塊共享问欠,交互數(shù)據(jù),那么各模塊就不用緩存大量的重復(fù)的數(shù)據(jù)信息粒蜈,數(shù)據(jù)與邏輯顺献,界面分離。

3枯怖、觀察者模式:項(xiàng)目中會(huì)有很多事件注整,模塊只想關(guān)注其中的某幾個(gè)事件,那么它先注冊(cè)它關(guān)心的事件,當(dāng)事件觸發(fā)時(shí)肿轨,根據(jù)注冊(cè)的事件進(jìn)行通知即可寿冕。


UI 事件調(diào)用網(wǎng)絡(luò) SDK
網(wǎng)絡(luò) SDK 回調(diào),邏輯處理
UI 邏輯

更精彩內(nèi)容椒袍,請(qǐng)關(guān)注我的博客:https://wenfh2020.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驼唱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子驹暑,更是在濱河造成了極大的恐慌玫恳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优俘,死亡現(xiàn)場(chǎng)離奇詭異京办,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帆焕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門惭婿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叶雹,你說我怎么就攤上這事财饥。” “怎么了浑娜?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵佑力,是天一觀的道長。 經(jīng)常有香客問我筋遭,道長打颤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任漓滔,我火速辦了婚禮编饺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘响驴。我一直安慰自己透且,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布豁鲤。 她就那樣靜靜地躺著秽誊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琳骡。 梳的紋絲不亂的頭發(fā)上锅论,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音楣号,去河邊找鬼最易。 笑死怒坯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藻懒。 我是一名探鬼主播剔猿,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嬉荆!你這毒婦竟也來了归敬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤员寇,失蹤者是張志新(化名)和其女友劉穎弄慰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝶锋,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陆爽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扳缕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慌闭。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖躯舔,靈堂內(nèi)的尸體忽然破棺而出驴剔,到底是詐尸還是另有隱情,我是刑警寧澤粥庄,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布丧失,位于F島的核電站嗦董,受9級(jí)特大地震影響恨樟,放射性物質(zhì)發(fā)生泄漏蛹尝。R本人自食惡果不足惜菠发,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颂暇。 院中可真熱鬧占哟,春花似錦捶箱、人聲如沸坑鱼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲁沥。三九已至呼股,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間画恰,已是汗流浹背卖怜。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阐枣,地道東北人马靠。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像蔼两,于是被迫代替她去往敵國和親甩鳄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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