新聞中心
方案架構(gòu)師是負(fù)責(zé)系統(tǒng)架構(gòu)以及特定產(chǎn)品的技術(shù)標(biāo)準(zhǔn)(包括技術(shù)、平臺(tái)、基礎(chǔ)架構(gòu))的專家。他們?yōu)楫a(chǎn)品設(shè)定前景,他們的分析也是產(chǎn)品的定義、設(shè)計(jì)、交付和永久支持的成功關(guān)鍵。因此,構(gòu)架師不僅需要了解業(yè)務(wù)需求,還需要了解符合企業(yè)技術(shù)總目標(biāo)的邏輯性、可擴(kuò)展性及成本效益。

成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)的開(kāi)發(fā),更需要了解用戶,從用戶角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見(jiàn)的多,溝通容易、能幫助客戶提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。
架構(gòu)師的重要技能之一就是能從許多不同的角度來(lái)看待架構(gòu),因?yàn)槊恳粋€(gè)單獨(dú)的角度可能不完全相關(guān),但結(jié)合在一起就可以從總體的角度來(lái)看待產(chǎn)品。這些角度包括原則、標(biāo)準(zhǔn)、模式和反模式、經(jīng)驗(yàn)法則和經(jīng)驗(yàn)實(shí)踐,而這些對(duì)于決策方向確定和項(xiàng)目評(píng)估成功至關(guān)重要。
本文將一一介紹這些架構(gòu)原則。
SOLID五原則
SOLID原則不僅適用于軟件開(kāi)發(fā),也適用于系統(tǒng)的架構(gòu)。
單一功能原則
每個(gè)系統(tǒng)功能(例如服務(wù)/模塊/應(yīng)用界面)應(yīng)該只有一個(gè)職責(zé),因此也只有一個(gè)變更的理由。盡可能地縮小職責(zé)范圍,用戶便會(huì)理解其功能,從而減少錯(cuò)誤的發(fā)生。
開(kāi)閉原則
這一原則認(rèn)為,最好在不修改系統(tǒng)操作的情況下對(duì)其進(jìn)行擴(kuò)展。盡管提前預(yù)測(cè)需求的變化可能導(dǎo)致過(guò)于復(fù)雜的設(shè)計(jì),但是能夠以現(xiàn)有組件的最小更改來(lái)適應(yīng)新功能是應(yīng)用程序長(zhǎng)期使用的關(guān)鍵。
里氏替換原則
在軟件開(kāi)發(fā)中,這一原則意味著派生類必須可替換為它們的基類,但這一原則與勃蘭特·梅耶的“契約式設(shè)計(jì)”關(guān)于如何應(yīng)用于分布式架構(gòu)有著相似之處:兩個(gè)服務(wù)在進(jìn)行多次有效溝通后,它們之間形成一種“契約”,其定義了兩者的輸入/輸出、結(jié)構(gòu)和約束。因此:對(duì)于具有相同契約的兩個(gè)分布式組件,一個(gè)組件應(yīng)該可以替換為具有相同契約的其他組件,而不會(huì)改變系統(tǒng)的正確性。
接口隔離原則
接口或契約必須盡可能的細(xì)化及特定于客戶,因此調(diào)用客戶端并不依賴于它們不使用的功能。這與單一責(zé)任原則相輔相成:通過(guò)分組接口,我們提倡通過(guò)按角色或責(zé)任分離的組成,將派生模塊與不需要的職責(zé)分開(kāi)解耦。
依賴反轉(zhuǎn)原則
高級(jí)模塊不應(yīng)該依賴于低級(jí)模塊,它們都應(yīng)該依賴于抽象。同樣,抽象不應(yīng)該依賴于細(xì)節(jié),而細(xì)節(jié)應(yīng)該依賴于抽象。因此,該原則引入了高層和下層軟件組件或?qū)又g的接口抽象以消除雙方的依賴關(guān)系。
“最小”原則
在下文中,將根據(jù)這些原則的名稱將他們一起來(lái)介紹。
最小驚奇原則
最小驚奇原則(或最少意外原則)指的是,當(dāng)首次發(fā)現(xiàn)某個(gè)解決方案或方法時(shí)該領(lǐng)域中知識(shí)淵博的人不會(huì)感到驚訝(受眾可能不同,例如最終用戶、程序員、測(cè)試人員等)。更實(shí)際地來(lái)說(shuō),該原則的目的是利用用戶已有的知識(shí),在使用模塊時(shí)盡量減少他學(xué)習(xí)曲線,因此任何具有高不可預(yù)測(cè)性因素的事物都是用來(lái)重新設(shè)計(jì)的好選擇。
這一原則適用于架構(gòu)的每個(gè)方面:從命名服務(wù)到用戶界面的可視化,再到域模型的設(shè)計(jì)。
有驚喜也有驚嚇……
最小省力原則
最小省力原則(也稱為齊夫定律)源于一項(xiàng)人類的基本行為:即每個(gè)人都傾向于選擇走盡可能不費(fèi)力的道路。例如,如果一項(xiàng)設(shè)計(jì)遵循于特定的模式,那么下一個(gè)開(kāi)發(fā)人員將一次又一次地遵循這一相同的模式,除非有簡(jiǎn)單得多的方法出現(xiàn),這時(shí)開(kāi)發(fā)人員才會(huì)改變這一模式。或者更進(jìn)一步說(shuō),一旦他們找到一項(xiàng)任務(wù)的可接受結(jié)果,就不需要立即改進(jìn)當(dāng)前的解決方案。
最省力等同于最少的工作量。
因此,必須通過(guò)建立正確的架構(gòu)來(lái)實(shí)現(xiàn)一個(gè)好的開(kāi)端:即設(shè)定很高的期望值,并確保每個(gè)人都明白工作質(zhì)量不能在項(xiàng)目周期中受到影響,并且即使未來(lái)發(fā)生變化,質(zhì)量也要得到保證。
這個(gè)原則的偉大之處在于它的效益是可以推斷的:只要把正確的設(shè)計(jì)放在適當(dāng)?shù)奈恢茫涂梢詣?chuàng)建一個(gè)架構(gòu)框架,這將是下一個(gè)系統(tǒng)構(gòu)建的基礎(chǔ)。換言之,就能夠?yàn)榻M織的軟件系統(tǒng)建立一個(gè)成功且不過(guò)時(shí)的模板。
最簡(jiǎn)便的道路
經(jīng)濟(jì)學(xué)中的原理
以上提到的兩個(gè)原則有一個(gè)共同的主題:即都充分利用了機(jī)會(huì)成本和推遲決策成本。
機(jī)會(huì)成本原則
人們每次做選擇時(shí),做出的選擇都會(huì)與一定的價(jià)值有關(guān)。價(jià)值分兩部分:效益和成本。選擇的機(jī)會(huì)成本是放棄其后才得到的。為了做出一個(gè)好的經(jīng)濟(jì)決策,我們希望選擇效益最大但成本最低的方案。
例如,擺在面前的有兩種選擇,一種是內(nèi)部構(gòu)建的系統(tǒng),另一種是現(xiàn)成的供應(yīng)商產(chǎn)品,如果選擇后者,那么機(jī)會(huì)成本就是開(kāi)發(fā)團(tuán)隊(duì)可能會(huì)開(kāi)發(fā)出的令人眼前一亮的新系統(tǒng)。
因此,架構(gòu)所要做的就是權(quán)衡不同的選擇,做出明智的決定,為項(xiàng)目爭(zhēng)取最大的價(jià)值。例如,一個(gè)非常常見(jiàn)的分歧就是,是創(chuàng)建一個(gè)戰(zhàn)術(shù)上的解決方案,以便快速推向市場(chǎng),還是創(chuàng)建一個(gè)更具戰(zhàn)略意義的解決方案,雖說(shuō)現(xiàn)在成本更高一些,但未來(lái)成本會(huì)降至最低。
以下是一些可供考慮的因素:
- 架構(gòu)分析或評(píng)估的可用時(shí)間是多少?畢竟提出一個(gè)解決方案已經(jīng)非常有挑戰(zhàn)性,更不用說(shuō)好幾個(gè)了!
- 未來(lái)1-3年的產(chǎn)品路線是什么?還有什么其他的項(xiàng)目?能看到任何協(xié)同效應(yīng)嗎?
- 目前可能解決的技術(shù)債務(wù)是什么?
- 反過(guò)來(lái)想:如果尋求一個(gè)戰(zhàn)術(shù)解決方案將會(huì)產(chǎn)生多少新的技術(shù)債務(wù)?
- 哪些品質(zhì)要素對(duì)企業(yè)中的系統(tǒng)最重要?以及它們可能將如何被提議的解決方案所影響?
- 除了架構(gòu)團(tuán)隊(duì),還有誰(shuí)是影響決策的利益相關(guān)方?公司?你的老板?技術(shù)設(shè)計(jì)部門?每一個(gè)利益相關(guān)方的核心目標(biāo)是什么?如何調(diào)解有沖突的需求?
最后責(zé)任時(shí)刻原則
這一原則(也稱為延遲成本)源于精益軟件開(kāi)發(fā),強(qiáng)調(diào)盡可能長(zhǎng)時(shí)間地堅(jiān)持采取重要行動(dòng)和關(guān)鍵決策。這樣做是為了在最后一刻之前不漏掉重要的備選方案,即縮小選擇范圍,直到得到更全面的信息做出最佳選擇。
這個(gè)策略不是過(guò)早做出決定,而是推遲決定,直到不做決定的成本大于作出決定的的成本之前,保留重要且不可逆轉(zhuǎn)的決策。
而有一種緩解決策過(guò)晚風(fēng)險(xiǎn)的方法是建立概念驗(yàn)證(POCs),來(lái)原型化備選方案,并向利益相關(guān)者證明他們的需求。
在項(xiàng)目的早期,應(yīng)該盡可能少地做出有約束力的決定!
結(jié)語(yǔ)
架構(gòu)原則可幫助我們?cè)u(píng)估整個(gè)項(xiàng)目中所做的決策,同時(shí)確保其不僅符合項(xiàng)目的總體目標(biāo),且符合企業(yè)的技術(shù)范圍。下圖集中展示了本文中所闡述的五項(xiàng)原則:
新聞標(biāo)題:軟件架構(gòu)五大原則,確保你的項(xiàng)目100%成功
文章路徑:http://fisionsoft.com.cn/article/ccdiipp.html


咨詢
建站咨詢
