久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

幫助中心 >  行業(yè)資訊 >  架構(gòu) >  架構(gòu)方法:運(yùn)用合適的工具表達(dá)設(shè)計(jì)

架構(gòu)方法:運(yùn)用合適的工具表達(dá)設(shè)計(jì)

2020-09-04 16:42:19 10810

           架構(gòu)的方法:運(yùn)用合適的工具表達(dá)設(shè)計(jì)

1、架構(gòu)設(shè)計(jì)的關(guān)鍵在于思維。
不是因?yàn)镻PT里的大部分內(nèi)容講的是UML,就花大把時(shí)間去學(xué)習(xí)如何畫UML圖,去嘗試各種UML工具,去理清各種UML圖的細(xì)節(jié),而是要理解UML圖背后所代表的看待架構(gòu)的思維。
比如,用例圖,它從用戶的角度來描述系統(tǒng)的功能以及各個(gè)功能的執(zhí)行者,強(qiáng)調(diào)的是使用者和功能。它從使用者的角度來看待一個(gè)系統(tǒng),可以幫助我們從宏觀上理清系統(tǒng)的所有功能點(diǎn)以及各個(gè)功能點(diǎn)之間可能存在的聯(lián)系。
再如,時(shí)序圖,把用例圖表達(dá)的功能點(diǎn),轉(zhuǎn)化為更進(jìn)一步,更加精細(xì)的表達(dá),它幾乎是自描述的,并且顯示了流程中不同對(duì)象之間的調(diào)用關(guān)系,同時(shí)還可以很詳細(xì)地顯示對(duì)不同對(duì)象的不同調(diào)用。它從開發(fā)者的角度來看待系統(tǒng),讓系統(tǒng)的關(guān)鍵流程變得容易理解,特別有利于初級(jí)開發(fā)者或?qū)I(yè)務(wù)不熟悉的同學(xué)。
最后,比如部署圖,更強(qiáng)調(diào)系統(tǒng)運(yùn)行時(shí)需要的物理節(jié)點(diǎn)以及各個(gè)節(jié)點(diǎn)的配置,其強(qiáng)調(diào)物理設(shè)備之間的關(guān)聯(lián)關(guān)系。它更多的是從運(yùn)維的角度來看待系統(tǒng)的,可以幫助運(yùn)維理清該如何部署以及平衡物理資源的分布。
綜上,UML背后體現(xiàn)的思維是:在軟件的不同階段,站在不同的角度,通過不同類型的圖表來指導(dǎo)架構(gòu)的設(shè)計(jì)。我覺得,UML更多的意義在于表達(dá),即通過一些標(biāo)準(zhǔn)化的約束和圖表來描述我們的設(shè)計(jì)。所以,很遺憾,UML并不能教你如何設(shè)計(jì),它只是一個(gè)工具而已。
很贊同的一個(gè)關(guān)于架構(gòu)設(shè)計(jì)思維的觀點(diǎn)是:架構(gòu)設(shè)計(jì)的關(guān)鍵思維是判斷和取舍,程序設(shè)計(jì)的關(guān)鍵思維是邏輯和實(shí)現(xiàn)。
所謂判斷,即通過對(duì)需求的理解,識(shí)別系統(tǒng)復(fù)雜性所在的地方,并針對(duì)這些復(fù)雜點(diǎn)進(jìn)行架構(gòu)設(shè)計(jì)。所謂取舍,即有的放矢,而不是面面俱到。
比如,對(duì)于一個(gè)確定的功能點(diǎn),不同的性能要求,設(shè)計(jì)思路是不一樣的。如果性能要求不高的話,不需要使用緩存,也無需引入各種中間件;而如果性能要求很高的話,可能就需要使用消息隊(duì)列和緩存等組件來提升性能。
但也要避免陷入貪大求全的境地,不根據(jù)實(shí)際情況,什么都想滿足,既要高可用又要高性能,這就是沒有很好的進(jìn)行取舍和平衡。
判斷和取舍才是架構(gòu)師在架構(gòu)設(shè)計(jì)時(shí),應(yīng)該著重關(guān)注的點(diǎn),如果僅僅是通過UML把各種圖表畫出來,更多的還是停留在工程師思維,僅關(guān)注了程序的邏輯和實(shí)現(xiàn),這并不有利于我們做出好的架構(gòu)設(shè)計(jì)。
而如何進(jìn)行判斷和取舍,則要看我們?cè)诩夹g(shù)深度和廣度上的積累,這不是參加一個(gè)訓(xùn)練營(yíng)就能解決的問題,只能說道阻且長(zhǎng),我們還需努力。


2、關(guān)于人
架構(gòu)設(shè)計(jì)的第二個(gè)要點(diǎn)是人,即相關(guān)方。
在架構(gòu)設(shè)計(jì)中,相關(guān)方指的可能是系統(tǒng)的各個(gè)角色用戶,即什么樣的人會(huì)如何使用系統(tǒng);也可能是實(shí)施整個(gè)架構(gòu)的開發(fā)工程師、測(cè)試工程師以及運(yùn)維工程師;甚至可能是要時(shí)刻關(guān)注系統(tǒng)研發(fā)的老板等等。
不同的相關(guān)方,對(duì)架構(gòu)設(shè)計(jì)的成果的期待是不一樣的,這個(gè)需要根據(jù)團(tuán)隊(duì)的實(shí)際情況來考慮和取舍,這也是指導(dǎo)架構(gòu)師設(shè)計(jì)的重要標(biāo)準(zhǔn)。
比如,對(duì)于老板,其可能更關(guān)注實(shí)現(xiàn)整個(gè)架構(gòu)需要的人力、物力、時(shí)間成本;而對(duì)于項(xiàng)目經(jīng)理可能會(huì)更關(guān)注架構(gòu)的邊界以及和其他團(tuán)隊(duì)的協(xié)作配合上;對(duì)于開發(fā)工程師,可能更關(guān)注架構(gòu)涉及到的各種技術(shù)以及實(shí)現(xiàn)方式。作為架構(gòu)師,需要考慮不同相關(guān)方的期待,以此來指導(dǎo)設(shè)計(jì)。
特別想說的是,整個(gè)架構(gòu)設(shè)計(jì)要特別關(guān)注的角色,其實(shí)是開發(fā)工程師。在架構(gòu)設(shè)計(jì)中要根據(jù)開發(fā)工程師的技術(shù)水平給予適當(dāng)?shù)陌l(fā)揮空間。如果團(tuán)隊(duì)都是新手工程師,可能需要像課程中一樣,細(xì)致到關(guān)鍵流程的時(shí)序圖、類圖,工程師只需要實(shí)現(xiàn)即可,這樣可以最大程度的保證軟件質(zhì)量。而如果團(tuán)隊(duì)中有很資深的工程師,在關(guān)鍵業(yè)務(wù)流程以及組件使用上,最好與其充分討論,得出一致結(jié)論。這時(shí)候,架構(gòu)文檔只要起到記錄的作用即可,也就無需太細(xì)致,具體的實(shí)現(xiàn)留給工程師自己發(fā)揮吧。


3、關(guān)于工具
架構(gòu)設(shè)計(jì)的最后一個(gè)要點(diǎn)是工具。在架構(gòu)設(shè)計(jì)中,工具是一種語言。
既然是語言,其最重要的作用就是交流。只要相關(guān)方可以理解,選擇什么樣的工具就變得不那么重要。
UML作為標(biāo)準(zhǔn)建模語言,全世界通用,但如果你的團(tuán)隊(duì)沒人學(xué)習(xí)過,那大可不必一定要使用。比如,用例圖你完全可以畫框圖來代替;流程圖也可以代替時(shí)序圖的部分功能。
因此,工具的選擇是與人緊緊相關(guān),無關(guān)乎好壞優(yōu)劣,選擇合適團(tuán)隊(duì)的就好。
這也是為什么把工具的重要性放到最后一個(gè)的原因。就我個(gè)人而言,如果不是因?yàn)樽鳂I(yè)需要,短時(shí)間內(nèi)不會(huì)去看或者學(xué)習(xí)任何UML相關(guān)內(nèi)容,畢竟周圍沒人通過UML溝通和交流。也正如老師所講,如有需要,花半個(gè)小時(shí)學(xué)習(xí)即可。


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: