學(xué)AI,好工作 就找北大青鳥(niǎo)
關(guān)注小青 聽(tīng)課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

避免內(nèi)卷化,互聯(lián)網(wǎng)程序員必掌握的架構(gòu)設(shè)計(jì)模式

來(lái)源:北大青鳥(niǎo)總部 2023年01月10日 16:28

摘要: 當(dāng)面對(duì)工作和生活中的內(nèi)卷化時(shí),我們不應(yīng)該自怨自艾,而應(yīng)該思考如何才能快速成長(zhǎng)起來(lái),提升自己的能力,避免內(nèi)卷化。

內(nèi)卷化指的是社會(huì)或文化模式在某一發(fā)展階段達(dá)到一種確定的形式之后,便停滯不前或無(wú)法轉(zhuǎn)化為另一種高級(jí)模式的現(xiàn)象,簡(jiǎn)單來(lái)說(shuō),就是“不進(jìn)步便是退步”。所以作為一名互聯(lián)網(wǎng)程序員,只聚焦業(yè)務(wù)邏輯開(kāi)發(fā)、CRUD是遠(yuǎn)遠(yuǎn)不夠的,架構(gòu)、性能優(yōu)化、新技術(shù)這些都是必須要掌握的,只有不斷努力的打磨技術(shù),緊跟技術(shù)發(fā)展趨勢(shì),以當(dāng)下最優(yōu)的方式解決業(yè)務(wù)訴求,保障高可用、高性能、高并發(fā),才能避免內(nèi)卷化,立于不敗之地。今天我們所介紹的便是軟件架構(gòu)設(shè)計(jì)模式


那么什么是軟件架構(gòu)設(shè)計(jì)模式呢?它指的是軟件開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中所面臨的一般問(wèn)題的解決方案,是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。通過(guò)設(shè)計(jì)模式的使用,保障所有開(kāi)發(fā)人員的認(rèn)知是在同一水平,實(shí)現(xiàn)代碼重用,并且所寫(xiě)的代碼可靠性更高、也更容易被他人理解。常見(jiàn)的設(shè)計(jì)模式包含客戶端-服務(wù)器模式、分層模式、代理模式、主從模式、管道-過(guò)濾器模式、MVC模式。



· 客戶端-服務(wù)器模式


現(xiàn)在最互聯(lián)網(wǎng)通用的場(chǎng)景便是用戶通過(guò)客戶端進(jìn)行應(yīng)用程序訪問(wèn)、服務(wù)端響應(yīng)請(qǐng)求、返回?cái)?shù)據(jù)。在客戶端-服務(wù)器模式中,主要是多個(gè)客戶端向同一個(gè)服務(wù)端進(jìn)行數(shù)據(jù)的請(qǐng)求,并且服務(wù)端持續(xù)監(jiān)聽(tīng)來(lái)自客戶端的情況。現(xiàn)在的設(shè)備終端非常多,往上有電腦、手機(jī)、iPad、智能硬件,往下有API接口調(diào)用,因此這些都是在軟件設(shè)計(jì)過(guò)程中必須要考慮的點(diǎn)。


1673339114813242.png



· 分層模式


現(xiàn)在的軟件系統(tǒng)都是非常復(fù)雜的,比如我們平時(shí)最常用的淘寶app、美團(tuán)app、滴滴app,它并不是一個(gè)簡(jiǎn)單的app,背后承載著上千個(gè)系統(tǒng)。如果不對(duì)該系統(tǒng)進(jìn)行分層的話,那么對(duì)于系統(tǒng)的迭代更新、維護(hù)都是非常困難的。分層模式的思想就是把系統(tǒng)拆分成多層,每一層獨(dú)自開(kāi)發(fā)、演化,每個(gè)小團(tuán)隊(duì)關(guān)注自己的這一層就好,整個(gè)業(yè)務(wù)程序運(yùn)行則按層層調(diào)用即可。


典型的分層模式設(shè)計(jì)實(shí)踐便是微服務(wù)了。微服務(wù)通過(guò)把整個(gè)系統(tǒng)所能提供的服務(wù)都拆分成原子化,微服務(wù)與微服務(wù)之間低耦合,微服務(wù)內(nèi)部高內(nèi)聚。通過(guò)服務(wù)拆分微服務(wù),實(shí)現(xiàn)了復(fù)雜系統(tǒng)簡(jiǎn)單化,提高軟件團(tuán)隊(duì)開(kāi)發(fā)效率。


1673339137440035.png


· 代理模式


這種模式主要是在分布式系統(tǒng)中最常見(jiàn),分布式系統(tǒng)是把軟件或軟件模塊部署在不同的地區(qū)、服務(wù)器上,集合一群計(jì)算機(jī)的能力對(duì)外提供高可靠、高性能的服務(wù),解決了傳統(tǒng)集中式系統(tǒng)的單點(diǎn)問(wèn)題。代理模式便是提供一個(gè)代理,讓所有的請(qǐng)求、消息都發(fā)送到代理,服務(wù)端也從代理層獲取數(shù)據(jù)進(jìn)行處理。常見(jiàn)的最佳實(shí)踐有軟件部署模式中的Nginx分層設(shè)計(jì)、消息隊(duì)列的設(shè)計(jì)、服務(wù)注冊(cè)中的注冊(cè)中心等。


1673339161643695.png


· 主從模式


在微服務(wù)架構(gòu)、分布式系統(tǒng)中,承載著上千萬(wàn)、上億萬(wàn)的服務(wù)請(qǐng)求,除了業(yè)務(wù)層需要高可用之外,在數(shù)據(jù)層也是需要的。主從模式的設(shè)計(jì)思想是把整個(gè)數(shù)據(jù)系統(tǒng)分為master-slave,master節(jié)點(diǎn)是寫(xiě)操作、處理用戶數(shù)據(jù),slave節(jié)點(diǎn)是讀操作、從master節(jié)點(diǎn)同步數(shù)據(jù)、業(yè)務(wù)從slave節(jié)點(diǎn)讀取數(shù)據(jù)。常見(jiàn)的最佳實(shí)踐便是數(shù)據(jù)庫(kù)的主從復(fù)制方案了。


1673339183561761.png


· 管道-過(guò)濾器模式


在大數(shù)據(jù)領(lǐng)域最常見(jiàn)的設(shè)計(jì)模式便是管道-過(guò)濾器模式了。整個(gè)數(shù)據(jù)分析處理任務(wù)在一個(gè)管道內(nèi)完成,數(shù)據(jù)在管道中流通,而每一個(gè)處理步驟,比如數(shù)據(jù)采集、數(shù)據(jù)清晰、詞義轉(zhuǎn)化、語(yǔ)義轉(zhuǎn)化等就是一個(gè)個(gè)的過(guò)濾器,把數(shù)據(jù)從上一階段轉(zhuǎn)到下一階段。我們熟悉的MapReduce模型,也是這種設(shè)計(jì),從源HDFS文件系統(tǒng)中獲取數(shù)據(jù),經(jīng)過(guò)Filter1的Map操作處理成中間結(jié)果,再經(jīng)過(guò)Fliter2的Reduce操作處理成分析結(jié)果,最后呈現(xiàn)給到用戶。


1673339207686868.png


· MVC模式


MVC即Model-View-Controller,在模型中包含核心模塊、核心功能設(shè)計(jì),通過(guò)視圖將信息呈現(xiàn)給到用戶,再通過(guò)控制器處理輸入輸出數(shù)據(jù)。該模式將信息的內(nèi)部表示和呈現(xiàn)方式分離出來(lái),保障了代碼的有效復(fù)用。在Java程序設(shè)計(jì)中還會(huì)細(xì)分為Service、Controller、DAO層。


1673339223687024.png


這是一個(gè)最好的時(shí)代,也是一個(gè)最壞的時(shí)代。社會(huì)的快速發(fā)展帶來(lái)了人類(lèi)文明的進(jìn)步、更方便便捷的生活方式,但同時(shí)使得打工人們生活變得繁忙、焦慮、壓力大。當(dāng)面對(duì)工作和生活中的內(nèi)卷化時(shí),我們不應(yīng)該自怨自艾,而應(yīng)該思考如何才能快速成長(zhǎng)起來(lái),提升自己的能力,避免內(nèi)卷化。


熱門(mén)班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開(kāi)發(fā)全能班 爆滿開(kāi)班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開(kāi)班
報(bào)名優(yōu)惠
免費(fèi)試聽(tīng)
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門(mén)話題 站內(nèi)鏈接