- 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)工作坊
- 鄭天民
- 562字
- 2024-09-10 16:40:56
1.1 軟件復(fù)雜度剖析
任何軟件系統(tǒng)的發(fā)展都遵循從簡單到復(fù)雜、從集中到分散的過程。在系統(tǒng)誕生的初期,我們習(xí)慣于構(gòu)建單一、內(nèi)聚和全功能式的系統(tǒng),因?yàn)檫@樣的系統(tǒng)完全可以滿足當(dāng)前業(yè)務(wù)的需求。當(dāng)業(yè)務(wù)發(fā)展到一定階段,集中化系統(tǒng)開始表現(xiàn)出諸多弊端,功能拆分與服務(wù)化思想和實(shí)踐被引入。而當(dāng)系統(tǒng)繼續(xù)演進(jìn),團(tuán)隊(duì)規(guī)模隨之增大,由于分工模糊和業(yè)務(wù)復(fù)雜度不斷上升,系統(tǒng)架構(gòu)逐漸被腐化,直到系統(tǒng)不能承受任何改變,進(jìn)入需要重新拆分的階段。推倒重來意味著重復(fù)從簡單到復(fù)雜、從集中到分散的整個(gè)過程,如圖1-1所示。

圖1-1 系統(tǒng)架構(gòu)的輪回
系統(tǒng)架構(gòu)的輪回給人們的啟示就是將所有東西放在一起不是一個(gè)好的選擇,軟件系統(tǒng)的關(guān)注點(diǎn)應(yīng)該清晰劃分,并能通過功能拆分降低系統(tǒng)復(fù)雜性。因此,在本質(zhì)上,架構(gòu)的演進(jìn)過程就是一個(gè)解決系統(tǒng)復(fù)雜度問題的過程。那么,軟件復(fù)雜度具體指的是什么呢?我們又應(yīng)該如何對(duì)復(fù)雜度本身進(jìn)行剖析呢?圖1-2給出了問題的答案。

圖1-2 軟件復(fù)雜度的3個(gè)維度
在圖1-2中,我們可以看到軟件復(fù)雜度的形成涉及3個(gè)維度——規(guī)模、結(jié)構(gòu)和變化。本節(jié)將詳細(xì)介紹圖1-2中的3個(gè)復(fù)雜度維度。同時(shí),我們也需要認(rèn)識(shí)到,軟件復(fù)雜度體現(xiàn)的是一種客觀規(guī)律,因?yàn)槿魏我粋€(gè)軟件系統(tǒng)都會(huì)受到這3個(gè)維度的影響,開發(fā)人員無法完全避免,但引入一定的設(shè)計(jì)思想和方法可以降低軟件復(fù)雜度。在本節(jié)中,我們將展開介紹軟件復(fù)雜度的應(yīng)對(duì)策略。
- QTP從實(shí)踐到精通
- 軟件開發(fā)生產(chǎn)率改進(jìn):軟件管理的有效領(lǐng)導(dǎo)力與量化方法
- Swift從入門到精通(正式版)
- 這就是MCP
- 3D打印創(chuàng)意小創(chuàng)客
- 大模型入門:技術(shù)原理與實(shí)戰(zhàn)應(yīng)用
- 建筑運(yùn)維智慧管控平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
- 軟件測(cè)試之魂:核心測(cè)試設(shè)計(jì)精解
- 全棧Monorepo開發(fā)實(shí)戰(zhàn)(Vue 3+Fastify+Deno+pnpm)
- 嵌入式軟件調(diào)試技術(shù)
- 虛擬現(xiàn)實(shí):科技新浪潮
- 構(gòu)建跨平臺(tái)APP:jQuery Mobile移動(dòng)應(yīng)用實(shí)戰(zhàn)(第2版) (跨平臺(tái)移動(dòng)開發(fā)叢書)
- 軟件開發(fā)的201個(gè)原則
- Web前端性能優(yōu)化
- 云計(jì)算工程