常見的軟體架構套路
本文主要翻譯來源:ofollow,noindex" target="_blank">https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013 。有刪減。
分層模式
這種模式主要是將設計分層,每一層為其上層提供服務。例如:web開發中我們常常將某些常用的RESTful介面抽象出一個service層。
客戶端-服務端模式
客戶端和服務端分離,從而解耦。通過這樣設計,服務端可以同時為多個客戶端提供服務。例如:微信。手機上的微信就是一個客戶端, 而伺服器則在騰訊。
主從模式
將整個軟體區分為兩塊,一個是master,中文常叫做主,另一個是slave,中文常叫做從。例如:Nginx就使用了這種模式,因此master 可以方便的管理多個slave。
管道模式
將一個函式或者軟體的輸出作為下一個函式或者軟體的輸入,然後把他們串起來,就形成了管道模式。例如:bash中的|
。
訊息傳遞模式
broker,最常見到這個詞語的地方就是任務佇列。我們通過一箇中間介質,把訊息的釋出者和消費者解耦。例如:Celery。
點對點模式
大名鼎鼎的P2P,這是一種沒有中央伺服器的模式。例如:種子。
event-bus模式
這種模式和訊息傳遞模式很像,區別在於,訊息傳遞模式,消費者主動監聽可以消費的佇列,而這種模式,是註冊事件,由owner呼叫,例如:安卓中的路由監聽。
MVC模式
這是web開發中最常見的一種模式了。 通過將Model(提供資料),View(處理檢視),Controller(粘合兩者)區分開來,Model和View提供服務,Controller負責整合。