企業(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)行通知即可寿冕。
更精彩內(nèi)容椒袍,請(qǐng)關(guān)注我的博客:https://wenfh2020.com