浅谈系统架构
“架構(gòu)”一詞對(duì)程序員來(lái)說(shuō)是再常見(jiàn)不過(guò)的詞了,一提到架構(gòu)絕大部分的技術(shù)人員都會(huì)有一種不可企及、十分高大上的感覺(jué),其實(shí)架構(gòu)就在我們身邊,是我們看得到摸的著的東西。
我們先看看幾個(gè)概念,系統(tǒng)與子系統(tǒng),模塊與組件,框架與架構(gòu)的關(guān)系和區(qū)別。
系統(tǒng)與子系統(tǒng)
系統(tǒng)是由一群有關(guān)聯(lián)的個(gè)體按照指定的規(guī)則運(yùn)作,從而能完成個(gè)別元件不能單獨(dú)完成的工作的整體。例如:汽車與發(fā)動(dòng)機(jī)、輪胎等元件的關(guān)系。 子系統(tǒng)也是一個(gè)系統(tǒng),他與系統(tǒng)的定義是一致的,只是觀察的角度不同,一個(gè)系統(tǒng)可能是更大系統(tǒng)的一個(gè)子系統(tǒng)。模塊與組件
模塊和組件都是系統(tǒng)的組成部分,只是從不同角度拆分系統(tǒng)而已; 從邏輯的角度來(lái)拆分就是“模塊”,從物理的角度拆分后就是“組件”; 劃分模塊的主要目的是職責(zé)分離,劃分“組件”的目的是單元復(fù)用。框架與架構(gòu)
框架(Framework)關(guān)注的是規(guī)范與功能產(chǎn)品,例如MVC規(guī)范與SpringMVC這個(gè)MVC的開(kāi)發(fā)框架;架構(gòu)(Architecture)關(guān)注的是“結(jié)構(gòu)”,他是系統(tǒng)的頂層結(jié)構(gòu)。總結(jié):系統(tǒng)根據(jù)業(yè)務(wù)或功能劃分為各個(gè)模塊,某些模塊可能又被升級(jí)為了子系統(tǒng);模塊中可能使用了很多組件來(lái)實(shí)現(xiàn)某些具體功能;同時(shí),也可能使用了某些框架來(lái)作為開(kāi)發(fā)的基礎(chǔ),而架構(gòu)則描述了各個(gè)子系統(tǒng)或模塊間如何協(xié)調(diào)工作。
為什么要做架構(gòu)
**架構(gòu)設(shè)計(jì)的主要目的是為了解決軟件系統(tǒng)復(fù)雜度帶來(lái)的問(wèn)題**那么系統(tǒng)的復(fù)雜度主要來(lái)源于哪些方面呢?其主要來(lái)源與以下幾個(gè)方面
1)高性能
2)高可用
3)可擴(kuò)展性
4)低成本
5)安全
6)規(guī)模
也就是說(shuō)結(jié)構(gòu)設(shè)計(jì)是為了解決某些關(guān)鍵的問(wèn)題而存在,并不是每個(gè)系統(tǒng)都需要進(jìn)行架構(gòu)設(shè)計(jì)的。
在做架構(gòu)設(shè)計(jì)的時(shí)候不能貪大而全,而是要遵循幾個(gè)簡(jiǎn)單的原則
1)合適原則:合適優(yōu)于業(yè)界領(lǐng)先
沒(méi)有那么多人,卻想干那么多人的活,是失敗的第一個(gè)主要原因;沒(méi)有那么多積累卻想一步登天,是失敗的第二個(gè)主要原因;沒(méi)有那額卓越的業(yè)務(wù)場(chǎng)景,卻幻想靈光一閃成為天才,是失敗的第三個(gè)主要原因。
2)簡(jiǎn)單原則:簡(jiǎn)單優(yōu)于復(fù)雜
結(jié)構(gòu)的簡(jiǎn)單,邏輯的簡(jiǎn)單
3)演化原則:演化優(yōu)于一步到位
對(duì)于建筑來(lái)說(shuō),永恒是主題;而對(duì)于軟件來(lái)說(shuō),變化才是主題。
轉(zhuǎn)載于:https://blog.51cto.com/dengshuangfu/2354869
總結(jié)
- 上一篇: 图形学之开篇概念及综述
- 下一篇: Windows守护进程简单示例