AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

我們一起聊聊架構(gòu)復(fù)雜度來源高可用

來源: 責(zé)編: 時(shí)間:2024-04-09 09:08:31 192觀看
導(dǎo)讀可擴(kuò)展性是系統(tǒng)設(shè)計(jì)中一個(gè)關(guān)鍵概念,它指的是系統(tǒng)為了適應(yīng)未來需求的變化,具備的一種擴(kuò)展能力。這意味著當(dāng)新需求出現(xiàn)時(shí),系統(tǒng)可以通過最小的或沒有修改來支持這些需求,而無需進(jìn)行全面的重構(gòu)或重建。隨著軟件系統(tǒng)的固有多變

可擴(kuò)展性是系統(tǒng)設(shè)計(jì)中一個(gè)關(guān)鍵概念,它指的是系統(tǒng)為了適應(yīng)未來需求的變化,具備的一種擴(kuò)展能力。這意味著當(dāng)新需求出現(xiàn)時(shí),系統(tǒng)可以通過最小的或沒有修改來支持這些需求,而無需進(jìn)行全面的重構(gòu)或重建。隨著軟件系統(tǒng)的固有多變性,不斷有新需求提出,這使得可擴(kuò)展性成為軟件開發(fā)中的一個(gè)重要考慮點(diǎn)。面向?qū)ο蟮木幊趟枷牒驮O(shè)計(jì)模式的發(fā)展,都是為了更好地應(yīng)對和解決可擴(kuò)展性的挑戰(zhàn)。設(shè)計(jì)模式的廣泛應(yīng)用顯示了對可擴(kuò)展性的高度重視,幾乎成為了每一位技術(shù)專家的共識(shí)。kmK28資訊網(wǎng)——每日最新資訊28at.com

為了構(gòu)建一個(gè)具有良好可擴(kuò)展性的系統(tǒng),主要需要滿足兩個(gè)前提條件:準(zhǔn)確預(yù)測未來的變化,以及有效封裝這些變化。然而,實(shí)現(xiàn)這兩個(gè)條件并非易事,下面我將詳細(xì)探討這個(gè)主題。kmK28資訊網(wǎng)——每日最新資訊28at.com

與硬件或建筑項(xiàng)目不同,軟件系統(tǒng)的一個(gè)顯著特點(diǎn)是其發(fā)布后仍然能夠持續(xù)進(jìn)行修改和更新。這一特性意味著軟件系統(tǒng)需要不斷地適應(yīng)和實(shí)現(xiàn)新的需求。理想情況下,如果能夠在不修改現(xiàn)有代碼或僅通過少量修改來滿足這些新需求,對所有相關(guān)方來說無疑是最佳場景。反之,如果每出現(xiàn)一個(gè)新需求就需要對系統(tǒng)進(jìn)行大規(guī)模改動(dòng),不僅成本高昂,而且開發(fā)人員、產(chǎn)品經(jīng)理、甚至老板都會(huì)感到不滿——這種頻繁的大幅度修改既耗時(shí)又耗力。因此,架構(gòu)設(shè)計(jì)的一個(gè)關(guān)鍵目標(biāo)是盡可能預(yù)見未來的變化,并設(shè)計(jì)出能夠靈活適應(yīng)這些變化的架構(gòu),使得當(dāng)新需求出現(xiàn)時(shí),可以輕松地說:“我們已經(jīng)考慮到了這一點(diǎn),現(xiàn)有架構(gòu)可以輕松支持這個(gè)新功能,僅需幾天的工作量。”kmK28資訊網(wǎng)——每日最新資訊28at.com

然而,現(xiàn)實(shí)往往遠(yuǎn)比理想復(fù)雜。正如一句古老的諺語所言:“唯一不變的是變化本身”。這意味著在架構(gòu)設(shè)計(jì)時(shí),考慮到可擴(kuò)展性變得尤為重要。比如,在設(shè)計(jì)一個(gè)后臺(tái)管理系統(tǒng)時(shí),如果選擇使用MySQL作為數(shù)據(jù)庫,是否需要預(yù)留空間以便將來可能切換到Oracle?在決定使用HTTP作為接口協(xié)議時(shí),是否需要考慮未來可能支持ProtocolBuffer?甚至更進(jìn)一步,是否需要考慮VR技術(shù)可能帶來的影響,以確保架構(gòu)的長期可擴(kuò)展性?如果嘗試預(yù)測和準(zhǔn)備每一個(gè)可能的變化,架構(gòu)師可能會(huì)感到不堪重負(fù),導(dǎo)致設(shè)計(jì)過于龐大而難以實(shí)施。但另一方面,如果完全不進(jìn)行未來規(guī)劃,新需求的到來可能會(huì)迫使系統(tǒng)進(jìn)行重構(gòu),這同樣意味著前期的投入和努力可能會(huì)付之東流。kmK28資訊網(wǎng)——每日最新資訊28at.com

應(yīng)對變化

第一種應(yīng)對變化的常見方案是將“變化”封裝在一個(gè)“變化層”,將不變的部分封裝在一個(gè)獨(dú)立的“穩(wěn)定層”kmK28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片kmK28資訊網(wǎng)——每日最新資訊28at.com

無論采取哪種形式,通過剝離變化層和穩(wěn)定層的方式應(yīng)對變化,都會(huì)帶來兩個(gè)主要的復(fù)雜性相關(guān)的問題。kmK28資訊網(wǎng)——每日最新資訊28at.com

區(qū)分變化與穩(wěn)定層

在系統(tǒng)架構(gòu)設(shè)計(jì)中,識(shí)別哪些部分容易發(fā)生變化(變化層)與哪些部分相對穩(wěn)定(穩(wěn)定層)是關(guān)鍵的第一步。然而,區(qū)分這兩層并非總是直接明了的,比如不同的數(shù)據(jù)庫選擇或接口協(xié)議可能容易識(shí)別,但在實(shí)際情況中,不同設(shè)計(jì)者可能對哪些層次屬于變化層,哪些屬于穩(wěn)定層有不同的見解。這種差異可能會(huì)在架構(gòu)審查過程中引發(fā)激烈的討論。kmK28資訊網(wǎng)——每日最新資訊28at.com

設(shè)計(jì)變化層與穩(wěn)定層間的接口

接口的設(shè)計(jì)是連接變化層與穩(wěn)定層的橋梁,對于確保系統(tǒng)的整體穩(wěn)定性和可擴(kuò)展性至關(guān)重要。穩(wěn)定層的接口應(yīng)當(dāng)盡可能的穩(wěn)定,而對于變化層,設(shè)計(jì)一個(gè)能夠適應(yīng)不同實(shí)現(xiàn)方式并在引入新功能時(shí)仍保持兼容性的接口則更加復(fù)雜。以數(shù)據(jù)庫為例,不同數(shù)據(jù)庫(如MySQL、Oracle、DB2)之間在某些操作(如數(shù)據(jù)插入或更新)的實(shí)現(xiàn)上可能存在差異,這就需要在設(shè)計(jì)存儲(chǔ)層訪問接口時(shí)做出選擇:是采用特定數(shù)據(jù)庫的實(shí)現(xiàn)方式,還是設(shè)計(jì)一個(gè)能夠自適應(yīng)不同數(shù)據(jù)庫特性的通用接口?這個(gè)例子揭示了設(shè)計(jì)接口時(shí)需要面對的挑戰(zhàn)。kmK28資訊網(wǎng)——每日最新資訊28at.com

另一種常用的方法來應(yīng)對系統(tǒng)變化是區(qū)分“抽象層”與“實(shí)現(xiàn)層”。在這種架構(gòu)策略中,抽象層保持穩(wěn)定,為系統(tǒng)的核心和通用功能提供定義,而實(shí)現(xiàn)層則具有可變性,可以根據(jù)不同的業(yè)務(wù)需求進(jìn)行定制化開發(fā)。當(dāng)需要引入新功能時(shí),僅需添加新的實(shí)現(xiàn)即可,而不需要對抽象層進(jìn)行修改。設(shè)計(jì)模式和規(guī)則引擎就是這種策略的經(jīng)典實(shí)踐案例。鑒于大多數(shù)技術(shù)專業(yè)人士對設(shè)計(jì)模式已相當(dāng)熟悉,我將以設(shè)計(jì)模式為例進(jìn)一步闡述這種方法的復(fù)雜之處。kmK28資訊網(wǎng)——每日最新資訊28at.com

裝飾者模式提供了一種相較于傳統(tǒng)繼承更為靈活的方式來擴(kuò)展功能。以《設(shè)計(jì)模式》一書中的“TextView”類示例為例,通過使用裝飾者模式,可以非常靈活地為TextView添加各種額外功能,如邊框、滾動(dòng)條、背景圖片等,而這些功能的組合并不會(huì)影響到基本的實(shí)現(xiàn)規(guī)則,只需遵循裝飾者模式的設(shè)計(jì)即可實(shí)現(xiàn)。然而,與傳統(tǒng)的類實(shí)現(xiàn)相比,裝飾者模式的確引入了更多的復(fù)雜性。原本可能通過單個(gè)函數(shù)或類就能完成的任務(wù),現(xiàn)在需要分解成多個(gè)類,并且這些類之間的關(guān)系和調(diào)用方式都必須遵循裝飾者模式的設(shè)計(jì)原則。kmK28資訊網(wǎng)——每日最新資訊28at.com

同樣,規(guī)則引擎的設(shè)計(jì)理念與設(shè)計(jì)模式持有相同的目標(biāo)——通過靈活的設(shè)計(jì)達(dá)到系統(tǒng)的可擴(kuò)展性。然而,這種“靈活性”本身就帶來了設(shè)計(jì)上的復(fù)雜性。不僅如此,僅僅是要徹底理解并掌握23種設(shè)計(jì)模式本身就是一個(gè)挑戰(zhàn)。kmK28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-82184-0.html我們一起聊聊架構(gòu)復(fù)雜度來源高可用

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: C# 中取消任務(wù)(Task)的正確方式

下一篇: 聊聊Flink:Flink中的時(shí)間語義和Watermark詳解

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 官方承諾:K60至尊版將會(huì)首批升級(jí)MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會(huì)搭載天璣9200+處理器和獨(dú)顯芯片X7的同時(shí),Redmi給出了官方承諾,K60至尊重大更新首批升級(jí),會(huì)首批推送MIUI 15。也就是說雖然
  • 轎車從天而降電動(dòng)車主被撞身亡 超速搶道所致:現(xiàn)場視頻讓網(wǎng)友吵翻

    近日,上海青浦區(qū)法院判決轎車從天而降電動(dòng)車主被撞身亡案,轎車車主被判有期徒刑一年。案件顯示當(dāng)時(shí)男子駕駛轎車在上海某路段行駛,前車忽然轉(zhuǎn)彎提速超車,
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來發(fā)現(xiàn)軟件漏洞的方法。可以用來發(fā)現(xiàn)應(yīng)用程序、操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議等中的漏洞或
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(chǔ)(消息堆積)、消費(fèi) 三大塊領(lǐng)域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關(guān)代
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營,這意味著騰訊音樂長音頻業(yè)務(wù)走向消亡。騰訊在長音頻領(lǐng)域還在摸索。為
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預(yù)警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業(yè)發(fā)布的ESG報(bào)告。ESG是“環(huán)境保
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發(fā)布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時(shí)代麒麟電池,容量為101kWh,電壓為726.7V,可以預(yù)測小
  • 聯(lián)想的ThinkBook Plus下一版曝光,鍵盤旁邊塞個(gè)平板

    ThinkBook Plus 是聯(lián)想的一個(gè)特殊筆記本類別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據(jù)有人爆料,聯(lián)想的下一款 ThinkBook Plus 可能更特殊,它
  • 電博會(huì)與軟博會(huì)實(shí)現(xiàn)"線下+云端"的雙線融合

    在本次“電博會(huì)”與“軟博會(huì)”雙展會(huì)利好條件的加持下,既可以發(fā)揮展會(huì)拉動(dòng)人流、信息流、資金流實(shí)現(xiàn)快速交互流動(dòng)的作用,繼而推動(dòng)區(qū)域經(jīng)濟(jì)良性發(fā)展;又可以聚
Top